如何从用户定义的包中正确导入宏?
Posted
技术标签:
【中文标题】如何从用户定义的包中正确导入宏?【英文标题】:How to correctly import a macro from a user defined package? 【发布时间】:2021-08-30 15:12:42 【问题描述】:我正在尝试导入在实用程序包中定义的宏,但是当我尝试使用该宏时,我收到一条消息,指出在 UNDEFINED-FUNCTION my-macro
上调用了调试器,并且 my-package:my-macro
是宏,而不是功能。但是,当我调用在同一个包中定义的函数时,我没有收到任何错误。
【问题讨论】:
【参考方案1】:宏扩展发生在compile 时间。您的消息表明使用宏的文件是在未定义宏时编译的,因此编译器假定未知名称my-macro
命名了一个函数(如果您查看编译日志,您应该会看到一条消息)。
解决方案:require
在使用宏定义的文件中包含宏定义的文件。
【讨论】:
这是真的,谢谢,我使用的是 asdf,结果是在加载使用该宏的包后,我正在加载带有包定义的文件,我修复了它首先加载包定义。以上是关于如何从用户定义的包中正确导入宏?的主要内容,如果未能解决你的问题,请参考以下文章