我想使用相对路径(例如../foo
)为emacs lisp字节编译设置目标目录。我想我应该使用byte-compile-dest-file-function
,但不知道如何设置它。我该怎么设置它?
答案 0 :(得分:1)
要设置byte-compile-dest-function
变量,您可以在初始文件中以交互方式使用customize-variable
或setq
。既然你必须编写一个以任何方式完成工作的函数,我会建议使用后者,这样所有的东西都在init文件中的相同位置。
例如:
(defun my-dest-function (filename)
(concat (file-name-directory filename)
"../"
(file-name-sans-extension (file-name-nondirectory filename))
".elc"))
(setq byte-compile-dest-file-function 'my-dest-function)
答案 1 :(得分:0)
您可以使用C-h v后跟该变量名称找到它。
(defcustom byte-compile-dest-file-function nil
"Function for the function `byte-compile-dest-file' to call.
It should take one argument, the name of an Emacs Lisp source
file name, and return the name of the compiled file."
:group 'bytecomp
:type '(choice (const nil) function)
:version "23.2")
您可以看到它是一个可自定义的变量,因此您可以将其值更改为“function”。
编辑:我不太确定这是你想要改变的变量。事实上,你可以看到它经常处理变量目录,我不知道如何设置一个所有.elc应该去的某个目录。