我使用Quicklisp在我的Common项目中加载库,我需要加载一些库的自定义版本,而不是Quicklisp提供的版本。
库的自定义版本存储在Quicklisp的本地projects目录中,并且本地项目已经注册。然而,Quicklisp仍然试图加载它自己版本的库。
如何安排Quicklisp更喜欢定制的图书馆?(附带的问题:我如何问Quicklisp它将使用哪个位置来加载库?)
发布于 2018-06-24 12:01:21
如果该项目的系统文件可以用ASDF加载,则将优先加载它而不是Quicklisp提供的版本。最简单的方法是将项目的源代码放入~/quicklisp/local-projects/ (或者在安装了quicklisp的地方,而不是在~/quicklisp/中)并运行(ql:register-local-projects)。但是,其他方法,比如更新ASDF注册表配置和通过注册表将项目放在ASDF已知的某个位置,也是有效的。
要了解Quicklisp加载项目的位置,可以使用(ql:where-is-system "system-name")。
记住这一点
本地项目机制在默认情况下是通过一个特殊变量
ql:*local-project-directories*.配置的,它只包括Quicklisp目录中的local子目录,但是您可以在任何时候添加或删除目录,以便为系统扫描更多的位置。若要完全禁用本地项目机制,请将ql:*local-project-directories*设置为NIL。
(Quicklisp新闻博客)
https://stackoverflow.com/questions/51008845
复制相似问题