2009-02-24 58 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

相關問題