[英]How to distribute the asdf/quicklisp dependencies along with an app compiled with Embeddable Common Lisp?
我已经尝试过该示例ECL存储库asdf示例 ,它可以正常工作,但没有任何asdf依赖项。 如果我添加
:depends-on(#:下壳)
到example.asd然后运行已编译的独立可执行文件会出现此错误 :
Condition of type: SIMPLE-PACKAGE-ERROR
There exists no package with name "ASDF/DRIVER"
No restarts available.
是什么导致此错误,以及处理ECL上的asdf依赖项的惯用方式是什么?
编辑:此问题已针对高于16.1.3的ECL(在development分支中修复)解决,因此在即将发布的版本中无需使用“ require”技巧。
一般来说,您采取的路径是正确的。
确保您需要ASDF:
(require 'asdf)
(find-package "ASDF/DRIVER")
然后定义“ ASDF / DRIVER”包。 另一方面,下层外壳还需要其他一些库(例如alexandria),因此您必须将它们的路径放在ASDF中央注册表中或使用Quicklisp捆绑包 。
有关使用ECL进行构建的更多详细信息,请参见其文档 。
//编辑经过调查,看来在程序启动时必须手动需要ASDF。 这可能是一个错误。 作为解决方法,添加
:prologue-code '(require 'asdf)
到(asdf:make-build…)以获得独立可执行文件。 一切正常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.