Frage

Ich habe diesen 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* meine hinaus ist zu stumpwm.asd verwendet, um die ASDF Komponenten in dieser Datei zu erzeugen und die richtig geordnete Liste der Dateien oben.)

Es ist einfach nicht:

... 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.

Ich bin an dem Punkt, wo ich nur Fehler der Lösung bin, die ich eingeführt mit früheren Versuchen. Wenn Sie schon ein Programm mit ECL aufgebaut, enthalten Abhängigkeiten, bitte zeigen Sie mir, wie Sie es getan haben. Ich sehe, wie Ich kann die Abhängigkeiten Punt und laden, wenn stumpwm beginnt (auch ohne meine ~/.eclrc zu Laden, die ASDF sagt, wo zu finden diese). Aber die sollte möglich sein.

War es hilfreich?

Lösung

Oh, wow. Hier ist die Antwort :

  1. Löschen ecl-make.lisp, Änderungen rückgängig stumpwm.asd

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

Das ist es. [ASDF keine asdf:build-op sehen, aber.]

EDIT: na ja, es braucht auch einen Prolog. ecl-Beispiele jetzt protzt asdf:make-build

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top