Как зайти в Даркнет?!
25th January, 01:11
8
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
900
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
952
0
Очень долго работает Update запрос Oracle
27th January, 09:58
916
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
907
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
942
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1727
0
период по дням
25th October, 10:44
3957
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3722
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4614
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4382
0
Помогите пожалуйста решить задачи
24th November, 23:53
6088
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4352
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4400
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Lisp исполняемый файл
Я только начал изучать Lisp и не могу понять, как скомпилировать и связать код lisp с исполняемым файлом.
Я использую clisp и clisp -c для получения двух файлов:
- .fas
- .lib
Что мне делать дальше, чтобы получить исполняемый файл?
Я действительно пытался сделать это сегодня, и я обнаружил, что ввод этого в CLisp REPL работал:
(EXT:SAVEINITMEM "executable.exe"
:QUIET t
:INIT-FUNCTION 'main
:EXECUTABLE t
:NORC t)
где main-это имя функции, которую вы хотите вызвать при запуске программы, :QUIET t подавляет баннер запуска, а :EXECUTABLE t создает собственный исполняемый файл.
Это также может быть полезно для вызова
(EXT:EXIT)
в конце вашей основной функции, чтобы остановить пользователя от получения интерактивного приглашения lisp, когда программа будет завершена.
EDIT: читая документацию, вы также можете добавить :NORC t
( ссылка для чтения ). Это подавляет загрузку файла RC (например, ~/.clisprc.lisp ).
Это Lisp FAQ (слегка адаптированный):
*** Как сделать исполняемый файл из моей программы?
Это зависит от вашей реализации; вам нужно будет проконсультироваться с вашим документация поставщика.
С ECL и GCL стандартный процесс компиляции будет создайте собственный исполняемый файл.
С помощью параметра LispWorks см. раздел Руководство пользователя по доставке в разделе документация.
Вместе с Allegro Common Lisp смотрите раздел поставки руководство.
и т.д...
Однако классический способ взаимодействия с обычными программами Lisp не включает автономные исполняемые файлы. Давайте рассмотрим это во время два этапа процесса разработки: программирование и поставка.
Фаза программирования: общая разработка Lisp имеет больше инкрементальное чувство, чем это обычно бывает в пакетных языках, где edit-compile-link цикл является общим. Разработчик CL будет работать просто испытания и переходные взаимодействия с окружающей средой на REPL (или Read-Eval-Print-Loop, также известный как слушатель ). Исходный код сохраняется в файлах, а сборка / загрузка зависимости между исходными файлами записываются в системном описании объект, такой как ASDF (который играет аналогичную роль, чтобы сделать в edit-compile-link системы). Средство описания системы обеспечивает команды для построения системы (и только для перекомпиляции файлов, чьи зависимости изменились с момента последней сборки), а для загрузки система в память.
Наиболее распространенные реализации Lisp также предоставляют механизм "save-world" это позволяет сохранить моментальный снимок текущего изображения lisp, в форме,которая впоследствии может быть перезапущена. Общая среда Lisp как правило, состоит из относительно небольшой исполняемой среды выполнения и увеличенный файл изображения, содержащий состояние мира lisp. Обычное явление использование этого средства состоит в том, чтобы сбросить настроенное изображение, содержащее все построить инструменты и библиотеки, используемые в данном проекте, в порядке чтобы сократить время запуска. Например, этот объект доступен в разделе имя EXT:SAVE-LISP в CMUCL, SB-EXT:SAVE-LISP-AND-DIE в SBCL, EXT:SAVEINITMEM в CLISP и CCL:SAVE-APPLICATION в OpenMCL. Большинство из этих реализаций могут предварять среду выполнения до изображение, тем самым делая его исполняемым.
Доставка приложений: вместо создания одного исполняемого файла файл для приложения, Lisp разработчики обычно сохраняют изображение содержащее их приложение, и доставить его клиентам вместе с среда выполнения и, возможно, оболочка shell-script, которая вызывает среда выполнения с образом приложения. На платформах Windows это может быть скрыто от пользователя с помощью инструмента типа click-o-matic InstallShield.
Взгляните на официальную домашнюю страницу clisp. Существует FAQ, который отвечает на этот вопрос.
http://clisp.cons.org/impnotes/faq.html#вопросы и ответы-экзек
Для портативного способа сделать это я рекомендую roswell .
Для любой поддерживаемой реализации вы можете создать сценарии lisp для запуска программы, которая может быть выполнена переносимым способом с помощью ros , который может быть использован в строке hash-bang аналогично программе python или ruby.
Для SBCL и CCL roswell также может создавать двоичные исполняемые файлы с ros dump executable .
Я знаю, что это старый вопрос, но коду Lisp, который я рассматриваю, 25 лет :-)
Я не мог заставить компиляцию работать с clisp на Windows 10. Тем не менее, это сработало для меня с gcl .
Если мой файл lisp является jugs2.lisp,
gcl -compile jugs2.lisp
Это создает файл jugs2.o, если файл jugs2.lisp не содержит ошибок.
Запустите gcl без параметров для запуска интерпретатора lisp:
gcl
Загрузите файл .o:
(load "jugs2.o")
Чтобы создать EXE:
(si:save-system "jugs2")
Когда EXE запускается, ему требуется DLL oncrpc.dll ; это находится в папке <gcl install folder>\lib\gcl-2.6.1\unixport , которую создает gcl.bat.
При запуске он показывает среду lisp, вызов (main) для запуска главной функции (главный).