我试过这个例子ECL repository asdf example,它运行正常,但它没有任何asdf依赖项。如果我添加
:依赖(#:inferior-shell)
到example.asd然后运行编译的独立可执行文件提供此错误:
Condition of type: SIMPLE-PACKAGE-ERROR
There exists no package with name "ASDF/DRIVER"
No restarts available.
导致此错误的原因是什么,以及在 ECL 上处理asdf依赖关系的惯用方法是什么?
答案 0 :(得分:6)
您采取的一般路径是正确的。
确保您需要ASDF:
(require 'asdf)
(find-package "ASDF/DRIVER")
然后定义“ASDF / DRIVER”包。另一方面,劣质shell需要一些其他库(例如亚历山大),所以你必须在ASDF中央注册表中放置它们的路径或使用Quicklisp bundles。
有关使用ECL构建的更多详细信息,请参见Documentation。
//编辑 经过调查,似乎必须在程序启动时手动要求ASDF。这可能是一个错误。作为解决方法添加
:prologue-code '(require 'asdf)
到(asdf:make-build ...)独立可执行文件。一切都很好。