仅在找到库时才字节编译文件
Byte-compile file only when library is found
当找不到库时,如何建议字节编译器不要编译 emacs-lisp 源文件?请注意,不可编译的文件与其他应编译的文件位于同一目录中。
我见过有人将整个文件包裹在一个条件子句中,但这看起来很恶心。也可以想象autoload/declare每个函数,但在这种情况下整个文件都充斥着外部调用。有替代方案吗?
我认为这个问题没有什么好的answer/solution,没有。
您可以做的是:
要么标记文件,使其从未编译(即使库可用)no-byte-compile: t
在file-local中的某处变量。
或添加所有需要的 declare-function
s 和 defvar
s 以消除 byte-compiler 警告。请注意,此选项仅适用于 functions 和 variables 但不适用于宏:如果您使用该库中的宏,则需要格外小心防止在未加载库时编译这些宏调用(例如,参见 AUCTex 的 tex.el
中的 TeX--if-macro-fboundp
)。
当找不到库时,如何建议字节编译器不要编译 emacs-lisp 源文件?请注意,不可编译的文件与其他应编译的文件位于同一目录中。
我见过有人将整个文件包裹在一个条件子句中,但这看起来很恶心。也可以想象autoload/declare每个函数,但在这种情况下整个文件都充斥着外部调用。有替代方案吗?
我认为这个问题没有什么好的answer/solution,没有。
您可以做的是:
要么标记文件,使其从未编译(即使库可用)
no-byte-compile: t
在file-local中的某处变量。或添加所有需要的
declare-function
s 和defvar
s 以消除 byte-compiler 警告。请注意,此选项仅适用于 functions 和 variables 但不适用于宏:如果您使用该库中的宏,则需要格外小心防止在未加载库时编译这些宏调用(例如,参见 AUCTex 的tex.el
中的TeX--if-macro-fboundp
)。