带有defcustom的宏在字节编译时导致“符号值为变量为空”错误


13

在我的两个包中,我有一个宏,其中的主体依赖于defcustom形式定义的变量。

从Melpa安装软件包时,字节编译以以下结尾:

错误:符号的变量值无效:my-defcustom-variable

然后,通过在缓冲区中打开文件来手动字节编译文件即可。

我尝试使用autoloadCookie,但仍然具有相同的行为。

我在这里错过了重要的事情。


1
依赖于defcustom宏主体中的内容是一件奇怪的事情,因为该defcustom意愿仅在字节编译(扩展宏的位置)期间生效。这对我来说似乎没有多大意义。
lunaryorn 2014年

谢谢塞巴斯蒂安,您说得对,它解释了很多事情。
syl20bnr 2014年

Answers:


15

defcustom表达字节编译时不被评估,所以当你展开宏,变量还没有因为defcustom编译但不运行存在。您可以将defcustom移到另一个文件(然后require在文件的开头),也可以将defcustom包裹在其中eval-and-compile

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.