2009-02-24 56 views
3

我有这个ECL-make.lisp:(stumpwm-system::*components*是我除了stumpwm.asd, 用来生成该文件中的ASDF组件和文件的上述 正确排序列表)ECL如何在可执行文件中包含ASDF依赖项?

 
(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))) 

它只是失败:

 
... 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在哪里可以找到 这些),我可以踢出并加载相关性。但这应该是可能的。

+0

相关[如何发布asdf/quicklisp依赖与一个ECL应用程序一起](http://stackoverflow.com/questions/34062166/how-to-distribute-the-asdf-quicklisp-dependencies -along-with-an-app-compiled-wit) – smokeink 2015-12-03 11:03:23

回答

3

哦,哇。 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

+0

http://lists.gnu.org/archive/html/stumpwm-devel/2009-10/msg00003.html – 2012-10-12 02:41:48

相关问题