如何告诉 asdf 使用 .asd 文件的目录作为项目的根目录



我正在尝试使用自制的 .asd 文件加载我的项目,但不知何故,asdf 没有认识到 .asd 文件也应该是项目的根目录,因此在类似 failed to find the TRUENAME of /home/$USER/rel-path-to-file 的错误中进行了修复,其中 rel-path-to-file 是相对于加载的 .asd 文件的相应文件的路径。

这是我所做的:

(push "path-to-project-directory-of-asd-file" asdf:*central-registry*)

然后

(asdf:load-system 'project-name)

它确实找到了我的 .asd 文件,但不知何故找不到它应该加载的 .lisp 文件。

asdf 已由 quicklisp 配置和安装。因此,我还使用符号链接将项目"安装"到quicklisp中,这也有效。它确实使用 ql:quickload :name 找到 .asd 文件,但仍然不使用包含 .asd 文件的目录作为项目根目录。

我该如何解决这个问题?

Lisp 路径名历来是这样的,它们要求你在目录名后添加一个斜杠(我被告知这是由于操作系统是在我出生之前创建的),所以为了告诉 Lisp 你的目标是一个目录,你必须用斜杠结束名称。

请参阅 asdf:system-relative-pathname。

最新更新