Недавно я начал изучать Common Lisp, используя SBCL. Как я могу скомпилировать свои программы на Лиспе в двоичный файл Windows?
Компиляция Common Lisp в исполняемый файл
Ответы (3)
Делаем hello.exe:
* (defun main () (print "hello"))
MAIN
* (sb-ext:save-lisp-and-die "hello.exe" :toplevel #'main :executable t)
[undoing binding stack and other enclosing state... done]
[saving current Lisp image into hello.exe:
writing 3160 bytes from the read-only space at 0x22000000
writing 2592 bytes from the static space at 0x22100000
writing 30134272 bytes from the dynamic space at 0x22300000
done]
> dir hello.exe
31,457,304 hello.exe
> hello.exe
"hello"
Исполняемый файл размером 31 МБ!
person
KIM Taegyoon
schedule
29.10.2013
Спасибо, это хороший пример того, о чем говорил Антон. Два вопроса: как бы вы создали исполняемый файл из существующего файла lisp и можно ли уменьшить размер исполняемого файла?
- person James McMahon; 26.01.2014
@JamesMcMahon: меньшие размеры возможны с некоторыми другими реализациями CL. Например, Clozure CL, CLISP, LispWorks, Allegro CL, MKCL. Очень маленькие программы можно создавать с помощью коммерческого компилятора mocl (хотя в настоящее время он не для Windows), который поддерживает только большое подмножество Common Lisp и не поддерживает загрузку кода во время выполнения, компиляцию во время выполнения, полную оценку во время выполнения и т. д. mocl вы получаете крошечные приложения, но они статичны — подобно тому, что вы ожидаете от компилятора C. Он фактически компилируется в код C.
- person Rainer Joswig; 25.11.2014
Используйте 1_. См. http://www.sbcl.org/manual/#Saving-a-Core-Image а> подробности.
person
Anton Kovalenko
schedule
05.01.2013
не могли бы вы предоставить больше информации? Это указывает в правильном направлении, но здесь есть много информации для новичка в Лиспе.
- person James McMahon; 05.08.2013
Есть несколько инструментов для этого. Вы можете начать с Buildapp.
person
Vsevolod Dyomkin
schedule
06.01.2013