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 프롬프트를받지 못하도록하기 위해 주 함수의 끝에 있습니다.
편집 : 문서를 읽고, 추가 할 수도 있습니다 :NORC t
( 링크 읽기 ). 이렇게하면 RC 파일 (예 :)이로드되지 않습니다 ~/.clisprc.lisp
.
다음은 Lisp FAQ입니다 (약간 수정 됨).
*** 내 프로그램에서 실행 파일을 만들려면 어떻게합니까?
이것은 구현에 따라 다릅니다. 공급 업체의 설명서를 참조해야합니다.
ECL 및 GCL을 사용하면 표준 컴파일 프로세스가 기본 실행 파일을 생성합니다.
LispWorks를 사용하면 설명서의 Delivery User 's Guide 섹션을 참조 하십시오.
Allegro Common Lisp를 사용하는 경우 설명서 의 제공 섹션을 참조하십시오 .
기타...
그러나 Common Lisp 프로그램과 상호 작용하는 고전적인 방법에는 독립 실행 형 실행 파일이 포함되지 않습니다. 개발 프로세스의 두 단계 인 프로그래밍과 전달에서이를 고려해 보겠습니다.
프로그래밍 단계 : Common Lisp 개발은 편집-컴파일-링크주기가 일반적인 배치 지향 언어에서 일반적인 것보다 점진적인 느낌을 더 많이받습니다. CL 개발자는 REPL (또는 리스너 라고도하는 Read-Eval-Print-Loop)에서 환경과의 간단한 테스트 및 일시적인 상호 작용을 실행합니다 . 소스 코드는 파일에 저장되고 소스 파일 간의 빌드 /로드 종속성은 ASDF와 같은 시스템 설명 기능 ( 편집-컴파일-링크 시스템에서 만드는 것과 유사한 역할을 함 )에 기록됩니다. 시스템 설명 기능은 시스템 구축 (및 마지막 구축 이후 종속성이 변경된 파일 만 재 컴파일) 및 시스템을 메모리로로드하기위한 명령을 제공합니다.
대부분의 Common Lisp 구현은 현재 lisp 이미지의 스냅 샷을 나중에 다시 시작할 수있는 형식으로 저장할 수있는 "save-world"메커니즘도 제공합니다. Common Lisp 환경은 일반적으로 비교적 작은 실행 가능한 런타임과 lisp 세계의 상태를 포함하는 더 큰 이미지 파일로 구성됩니다. 이 기능의 일반적인 용도는 시작 시간을 줄이기 위해 지정된 프로젝트에서 사용되는 모든 빌드 도구 및 라이브러리가 포함 된 사용자 지정 이미지를 덤프하는 것입니다. 예를 들어,이 기능은 CMUCL의 EXT : SAVE-LISP, SBCL의 SB-EXT : SAVE-LISP-AND-DIE, CLISP의 EXT : SAVEINITMEM, OpenMCL의 CCL : SAVE-APPLICATION으로 사용할 수 있습니다. 이러한 구현의 대부분은 이미지 앞에 런타임을 추가하여 실행 가능하게 만들 수 있습니다.
응용 프로그램 제공 : 응용 프로그램에 대한 단일 실행 파일을 생성하는 대신 Lisp 개발자는 일반적으로 응용 프로그램이 포함 된 이미지를 저장하고 런타임 및 응용 프로그램 이미지로 런타임을 호출하는 쉘 스크립트 래퍼와 함께 클라이언트에 전달합니다. Windows 플랫폼에서는 Click-o-matic InstallShield 유형 도구를 사용하여 사용자가이를 숨길 수 있습니다.
공식 clisp 홈페이지를보세요. 이 질문에 답하는 FAQ가 있습니다.
http://clisp.cons.org/impnotes/faq.html#faq-exec
CLiki도 좋은 답을 가지고 있습니다 : 실행 파일 생성
이를위한 휴대용 방법으로 roswell을 추천 합니다 .
지원되는 모든 구현에 대해 lisp 스크립트를 생성하여 휴대용 방식으로 실행할 수있는 프로그램을 실행할 ros
수 있습니다.이 프로그램은 Python 또는 Ruby 프로그램과 유사하게 해시 뱅 라인에서 사용할 수 있습니다.
SBCL 및 CCL의 경우 roswell은 ros dump executable
.
나는 이것이 오래된 질문이라는 것을 알고 있지만 내가보고있는 Lisp 코드는 25 세입니다 :-)
Windows 10에서 clisp로 컴파일 작업을 수행 할 수 없었습니다. 그러나 gcl 에서는 저에게 효과적이었습니다 .
내 lisp 파일이 jugs2.lisp이면
gcl -compile jugs2.lisp
jugs2.lisp 파일에 오류가 없으면 jugs2.o 파일이 생성됩니다.
매개 변수없이 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가 생성 하는 폴더에 있습니다.
When run it shows a lisp environment, call (main) to run the main function (main).
참고URL : https://stackoverflow.com/questions/25046/lisp-executable
'Programing' 카테고리의 다른 글
free ()는 errno를 설정합니까? (0) | 2020.12.08 |
---|---|
Android 레이아웃 : 스크롤 동작이있는 Viewpager 내부의 Vertical Recyclerview 내부의 Horizontal Recyclerview (0) | 2020.12.08 |
ASP.NET 웹 사이트에서 Elmah 보안 (0) | 2020.12.08 |
jemalloc은 어떻게 작동합니까? (0) | 2020.12.08 |
분을 변경할 수 있습니다. (0) | 2020.12.07 |