gpt4 book ai didi

lisp - ECL 如何在可执行文件中包含 ASDF 依赖项?

转载 作者:太空宇宙 更新时间:2023-11-03 18:43:22 24 4
gpt4 key购买 nike

我有这个 ecl-make.lisp:

(asdf:oos 'asdf:compile-op :stumpwm)(defun system-objects (system)  (loop for component in (asdf:module-components (asdf:find-system system))    for pathname = (asdf:component-pathname component)    for directory = (pathname-directory pathname)    for name = (pathname-name pathname)    when (equal "lisp" (pathname-type pathname))    collect (make-pathname :directory directory :type "o" :name name)))(c:build-program "stumpwm" :lisp-files  (concatenate 'list    (system-objects :cl-ppcre)    (system-objects :clx)    (mapcar (lambda (component)              (concatenate 'string component ".o"))      stumpwm-system::*components*))  :epilogue-code '(unwind-protect (stumpwm:stumpwm) (ext:quit)))

(stumpwm-system::*components* 是我对 stumpwm.asd 的补充,用于生成该文件中的 ASDF 组件和以上文件的正确排序列表。)

它只是失败了:

... same messages you get when (system-objects ...) are... excluded from the c:build-program [it compiles in... this case, but of course CL-PPCRE and CLX are unavailable.]An error occurred during initialization:Cannot find out entry point for binary file.

我已经到了只解决我引入的错误的地步与之前的尝试。如果您使用 ECL 构建了一个程序包括依赖项,请告诉我你是怎么做到的。我明白了我可以在 stumpwm 启动时加载依赖项(甚至没有加载我的 ~/.eclrc ,它告诉 ASDF 在哪里可以找到这些)。但这应该是可能的。

最佳答案

哦,哇哦。 Here's the answer :

  1. 删除 ecl-make.lisp ,将更改还原为 stumpwm.asd

  2. ecl -eval '(asdf:make-build :stumpwm :type :program)'

就是这样。 [但是,ASDF 没有看到 asdf:build-op。]

编辑:好吧,它还需要一个序言。 ecl-examples现在展示 asdf:make-build

关于lisp - ECL 如何在可执行文件中包含 ASDF 依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/580083/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com