设置byte-compile-dest-file-function

时间:2012-12-19 16:43:39

标签: emacs elisp

我想使用相对路径(例如../foo)为emacs lisp字节编译设置目标目录。我想我应该使用byte-compile-dest-file-function,但不知道如何设置它。我该怎么设置它?

2 个答案:

答案 0 :(得分:1)

要设置byte-compile-dest-function变量,您可以在初始文件中以交互方式使用customize-variablesetq。既然你必须编写一个以任何方式完成工作的函数,我会建议使用后者,这样所有的东西都在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应该去的某个目录。