"Cannot open load file" 加载自动加载文件时出错
"Cannot open load file" error when loading autoload file
我有一个名为 "myloaddefs.el" 的文件函数。就像下面的一样,它下面有神奇的评论和表格。
;;;###autoload
(defun an-awesome-function '()
(interactive)
"A descriptive comment." t)
;;; other descriptive comments and forms...
它的完整路径是 ~/.emacs.d/core/myloaddefs.el
。
我还有一个自动加载文件,其完整路径为 ~/.emacs.d/.local/autoloads.el
。我将其路径存储在变量 my-autoload-file
.
中
在调用update-file-autoloads
之前,my-autoload-file
只有一个空注释;;
(确保它是非空的以避免出错)。像下面那样调用 update-file-autoloads
returns 零。当我检查 my-autoload-file
时,它确实使用自动加载进行了更新。加载“my-autoload-filereturns
t”似乎也成功了。
(update-file-autoloads (concat my-core-dir "myloaddefs.el") t my-autoload-file) ; => nil
(load-file my-autoload-file) ; => t
然而,在使用 M-x an-awesome-function
调用自动加载的交互函数后,我得到 "Cannot open load file: no such file or directory" "../core/myautoloads"
。这让我很困惑,因为目录和文件确实存在。这里可能有什么问题?
自动加载文件的路径需要在加载路径上,因为您使用相对路径加载库(例如 ../core/autoloads
)。我会在您创建路径的任何地方使用 expand-file-name
而不是使用 concat
.
构建它们
在调用 an-awesome-function
(其定义不正确)之前尝试 (push (expand-file-name ".local" "~") load-path)
。
我有一个名为 "myloaddefs.el" 的文件函数。就像下面的一样,它下面有神奇的评论和表格。
;;;###autoload
(defun an-awesome-function '()
(interactive)
"A descriptive comment." t)
;;; other descriptive comments and forms...
它的完整路径是 ~/.emacs.d/core/myloaddefs.el
。
我还有一个自动加载文件,其完整路径为 ~/.emacs.d/.local/autoloads.el
。我将其路径存储在变量 my-autoload-file
.
在调用update-file-autoloads
之前,my-autoload-file
只有一个空注释;;
(确保它是非空的以避免出错)。像下面那样调用 update-file-autoloads
returns 零。当我检查 my-autoload-file
时,它确实使用自动加载进行了更新。加载“my-autoload-filereturns
t”似乎也成功了。
(update-file-autoloads (concat my-core-dir "myloaddefs.el") t my-autoload-file) ; => nil
(load-file my-autoload-file) ; => t
然而,在使用 M-x an-awesome-function
调用自动加载的交互函数后,我得到 "Cannot open load file: no such file or directory" "../core/myautoloads"
。这让我很困惑,因为目录和文件确实存在。这里可能有什么问题?
自动加载文件的路径需要在加载路径上,因为您使用相对路径加载库(例如 ../core/autoloads
)。我会在您创建路径的任何地方使用 expand-file-name
而不是使用 concat
.
在调用 an-awesome-function
(其定义不正确)之前尝试 (push (expand-file-name ".local" "~") load-path)
。