在自定义目录中批量生成 Emacs 字节编译文件

Batch-generate Emacs byte-compiled files in a custom directory

我正在使用 batch-byte-compile 函数生成字节编译文件 (*.elc)。此函数在与 *.el 文件相同的目录中写出 *.elc 文件。

如何让 Emacs 在不同的目录中生成字节编译文件?

理想的解决方案是与操作系统无关。

Emacs 使用 byte-compile-dest-file 从源文件名生成编译后的文件名。如果非零,该函数委托给可自定义变量 byte-compile-dest-file-function

所以你可以简单地定义它。像这样:

(defun my-byte-compile-dest-file (source-file)
  (concat (file-name-directory source-file)
          "prefix-"
          (file-name-base source-file)
          "-compiled"))
(setq byte-compile-dest-file-function 'my-byte-compile-dest-file)