Как ECL может включать зависимости ASDF в исполняемый файл?
У меня есть этот ecl-make.lisp:
(asdf: oos 'asdf: compile-op: stumpwm) (определение системных объектов (системы) (цикл для компонента в (asdf: модуль-компоненты (asdf: система поиска системы)) для пути = (asdf: компонент-путь имени компонента) для каталога = (путь-путь к каталогу) для имени = (имя-пути-пути) когда (равно "lisp" (путь-тип-путь)) собирать (make-pathname: каталог каталог: тип "o": имя имя))) (c: программа сборки "stumpwm": файлы lisp (объединенный список) (системные объекты: cl-ppcre) (системные объекты:clx) (mapcar (лямбда (компонент) (объединить строковый компонент ".o")) StumpWM-система::* компонента *)):epilogue-code '(развернуть-защитить (stumpwm: stumpwm) (ext: quit)))
(stumpwm-system::*components*
мое дополнение к stumpwm.asd
, используется для генерации компонентов ASDF в этом файле и правильно упорядоченного списка файлов выше.)
Это просто терпит неудачу:
... те же сообщения, которые вы получаете, когда (системные объекты...)... исключен из программы c: build [он компилируется в... это случай, но, конечно, CL-PPCRE и CLX недоступны.] Произошла ошибка во время инициализации: Не удается найти точку входа для двоичного файла.
Я дошел до того, что решаю только ошибки, которые я внес в предыдущие попытки. Если вы создали программу с ECL, которая включала зависимости, пожалуйста, покажите мне, как вы это сделали. Я вижу, как я могу загружать и загружать зависимости, когда stumpwm
начинается (даже без загрузки моего ~/.eclrc
, который говорит ASDF, где их найти). Но это должно быть возможно.
1 ответ
Ух ты. Вот ответ:
удалять
ecl-make.lisp
, отменить измененияstumpwm.asd
ecl -eval '(asdf:make-build :stumpwm :type :program)'
Вот и все. [ASDF не видит asdf:build-op
, тем не мение.]
РЕДАКТИРОВАТЬ: ну, это также нуждается в прологе. ecl-examples теперь хвастается asdf:make-build