繁体   English   中英

如何分发asdf / quicklisp依赖项以及使用Embeddable Common Lisp编译的应用程序?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM