Programing

Lisp 실행 파일

crosscheck 2020. 12. 8. 07:43
반응형

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\unixportgcl.bat가 생성 하는 폴더에 있습니다.

When run it shows a lisp environment, call (main) to run the main function (main).

참고URL : https://stackoverflow.com/questions/25046/lisp-executable

반응형