我正在使用Quicklisp在我的 Common Lisp 项目中加载库并 我需要加载某个库的自定义版本,而不是 Quicklisp 提供的版本。
库的自定义版本存储在 Quicklisp 的本地项目目录中,并且本地项目已注册。然而 Quicklisp 仍然尝试加载它自己的库版本。
如何安排 Quicklisp 更喜欢库的定制? (附带问题:我如何询问 Quicklisp 将使用哪个位置来加载库?)
最佳答案
如果项目的系统文件可以使用 ASDF 加载,则优先加载 Quicklisp 提供的版本。最简单的方法是将项目的源代码放入 ~/quicklisp/local-projects/
(或者安装 Quicklisp 的任何位置,而不是 ~/quicklisp/
)运行(ql:register-local-projects)
。但是其他方法,例如更新 ASDF 注册表配置以及通过注册表将项目放置在 ASDF 已知的位置,也可以工作。
要了解 Quicklisp 在何处加载项目,您可以使用 (ql:where-is-system "system-name")
。
记住这一点
The local-projects mechanism is configured through a special variable
ql:*local-project-directories*.
By default, it includes only the local-projects subdirectory in the Quicklisp install directory, but you can add or remove directories at any time to have more places scanned for systems. To disable the local-projects mechanism entirely, setql:*local-project-directories*
toNIL
.
关于package - 如何安排 Quicklisp 加载给定库的本地版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51008845/