如何从用户定义的包中正确导入宏?

How to correctly import a macro from a user defined package?

我正在尝试导入在实用程序包中定义的宏,但是当我尝试使用该宏时,我收到一条消息,指出调试器在 UNDEFINED-FUNCTION my-macromy-package:my-macro 上调用是宏,不是函数。但是,当我调用同一个包中定义的函数时,我没有收到任何错误。

宏扩展发生在 compile 时间。您的消息表明使用宏的文件是在 定义宏时编译的,因此编译器假定未知名称 my-macro 命名了一个 函数(如果您查看编译日志,您应该会看到一条消息)。

解决方案:require文件中包含使用它们的文件中的宏定义。