문제

이 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에게 어디에서 찾을 수 있는지 알려줍니다). 하지만 이것은 ~해야 한다 가능합니다.

도움이 되었습니까?

해결책

오 와우. 여기에 답이 있습니다:

  1. 삭제 ecl-make.lisp , 변경 사항을 되돌립니다 stumpwm.asd

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

그게 다야. [ASDF는 AN을 보지 못합니다 asdf:build-op , 하지만.

편집 : 글쎄, 그것은 또한 프롤로그가 필요합니다. ECL- 예식 이제 선보입니다 asdf:make-build

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top