我有这个 ecl-make.lisp:
(asdf:oos 'asdf:compile-op :stumpwm) (defun系统对象(系统) (循环中的组件(asdf:module-components(asdf:find-system system)) for pathname = (asdf:component-pathname 组件) for directory = (路径名-目录路径名) for name = (pathname-name pathname) when (equal "lisp" (pathname-type pathname)) 收集(make-pathname :directory directory :type "o" :name name))) (c:构建程序“stumpwm”:lisp文件 (连接'列表 (系统对象:cl-ppcre) (系统对象:clx) (mapcar (lambda (组件)) (连接'字符串组件“.o”)) stumpwm-system::*组件*)) :epilogue-code '(unwind-protect (stumpwm:stumpwm) (ext:quit)))
(stumpwm-system::*components*
是我对 的补充stumpwm.asd
,用于在该文件中生成 ASDF 组件以及上面正确排序的文件列表。)
它只是失败了:
...您在 (system-objects ...) 时收到的相同消息 ...从 c:build-program 中排除 [它在 ...这种情况,但当然 CL-PPCRE 和 CLX 不可用。] 初始化时出错: 找不到二进制文件的入口点。
我已经到了只解决以前尝试引入的错误的地步。如果您使用 ECL 构建了一个包含依赖项的程序,请告诉我您是如何做到的。我看到了如何在启动时stumpwm
启动和加载依赖项(即使没有加载 my ~/.eclrc
,它会告诉 ASDF 在哪里找到这些依赖项)。但这应该是可能的。