문제

저는 방금 Lisp를 배우기 시작했는데 Lisp 코드를 컴파일하고 실행 파일에 연결하는 방법을 알 수 없습니다.

clisp를 사용하고 있으며 clisp -c는 두 개의 파일을 생성합니다.

  • .fas
  • .lib

    실행 파일을 얻으려면 어떻게해야합니까?

도움이 되었습니까?

해결책

실제로이 작업을 수행하려고했는데 CLisp REPL에 다음을 입력하면 효과가 있음을 발견했습니다. 라코 디스

여기서 main은 프로그램이 시작될 때 호출하려는 함수의 이름이고 :QUIET t는 시작 배너를 억제하며 :EXECUTABLE t는 네이티브 실행 파일을 만듭니다.

전화하는 것도 유용 할 수 있습니다. 라코 디스

프로그램이 끝났을 때 사용자가 대화 형 lisp 프롬프트를받지 못하도록 메인 기능의 끝에서

편집 : 문서를 읽으면 :NORC t를 추가 할 수도 있습니다. ( 링크 참조).이렇게하면 RC 파일 (예 : ~/.clisprc.lisp)로드가 억제됩니다.

다른 팁

다음은 Lisp FAQ 입니다 (약간 수정 됨). <인용구>

*** 프로그램에서 실행 파일을 만들려면 어떻게해야합니까?

구현에 따라 다릅니다. 당신은 당신의 상담이 필요합니다 공급 업체의 문서.

  • ECL 및 GCL을 사용하면 표준 컴파일 프로세스가 네이티브 실행 파일을 생성합니다.

  • LispWorks를 사용하는 경우 다음 페이지의 배달 사용자 가이드 섹션을 참조하십시오. 문서.

  • Allegro Common Lisp의 경우 배달 섹션을 참조하십시오. 설명서.

  • 기타 ...

    그러나 Common Lisp 프로그램과 상호 작용하는 고전적인 방법은 독립 실행 형 실행 파일을 포함하지 않습니다. 이것을 고려합시다 개발 프로세스의 두 단계 : 프로그래밍과 전달

    프로그래밍 단계 : Common Lisp 개발에는 배치 지향 언어에서 일반적인 것보다 점진적인 느낌 편집-컴파일-링크주기가 일반적입니다. CL 개발자는 간단하게 실행됩니다. 테스트 및 환경과의 일시적인 상호 작용 REPL (또는 Read-Eval-Print-Loop, 듣기 ). 소스 코드는 파일에 저장되고 빌드 /로드 소스 파일 간의 종속성은 시스템 설명에 기록됩니다. ASDF와 같은 시설 ( make 과 유사한 역할을합니다. 편집-컴파일-링크 시스템). 시스템 설명 기능은 시스템 구축을위한 명령 (그리고 마지막 빌드 이후 종속성이 변경되었습니다.) 시스템을 메모리에 저장합니다.

    대부분의 Common Lisp 구현은 "세이브 월드"메커니즘도 제공합니다. 현재 lisp 이미지의 스냅 샷을 저장할 수 있습니다. 나중에 다시 시작할 수있는 형식입니다. Common Lisp 환경 일반적으로 비교적 작은 실행 가능한 런타임으로 구성됩니다. lisp 세계의 상태를 포함하는 더 큰 이미지 파일. 공통 이 기능의 사용은 모든 주어진 프로젝트에서 사용되는 도구 및 라이브러리를 순서대로 빌드 시작 시간을 단축합니다. 예를 들어,이 시설은 CMUCL의 EXT : SAVE-LISP, SB-EXT : SAVE-LISP-AND-DIE CLISP의 SBCL, EXT : SAVEINITMEM 및 CCL : SAVE-APPLICATION OpenMCL. 이러한 구현의 대부분은 런타임을 실행 가능하게 만듭니다.

    애플리케이션 제공 : 단일 실행 파일을 생성하는 대신 응용 프로그램에 대한 파일, Lisp 개발자는 일반적으로 이미지를 저장 자신의 응용 프로그램을 포함하고 함께 고객에게 제공 런타임 및 가능한 경우를 호출하는 쉘 스크립트 래퍼 응용 프로그램 이미지로 런타임. Windows 플랫폼에서 이것은 Click-o-matic InstallShield 유형 도구를 사용하여 사용자로부터 숨겨집니다.

공식 CLISP 홈페이지를 살펴보세요.이 질문에 대한 답변을 제공하는 FAQ가 있습니다.

http://clisp.cons.org/impnotes/faq.html#faq-exec

CLiki도 좋은 답변을 제공합니다. 실행 파일 만들기

휴대용으로이 작업을 수행하려면 roswell 을 권장합니다.

지원되는 모든 구현에 대해 lisp 스크립트를 생성하여 python 또는 ruby 프로그램과 유사하게 해시-뱅 라인에서 사용할 수있는 ros에 의해 이식 가능한 방식으로 실행할 수있는 프로그램을 실행할 수 있습니다.

SBCL 및 CCL의 경우 roswell은 ros dump executable로 바이너리 실행 파일을 만들 수도 있습니다.

이것이 오래된 질문이라는 것을 알고 있지만 제가보고있는 Lisp 코드는 25 년이되었습니다 :-)

Windows 10에서 clisp로 컴파일 작업을 할 수 없습니다. 그러나 gcl 에서는 저에게 효과적이었습니다.

내 lisp 파일이 jugs2.lisp이면 라코 디스

jugs2.lisp 파일에 오류가 없으면 jugs2.o 파일이 생성됩니다.

매개 변수없이 gcl을 실행하여 lisp 인터프리터를 시작합니다. 라코 디스

.o 파일로드 : 라코 디스

EXE를 생성하려면 : 라코 디스

EXE가 실행될 때 DLL 유전자 태그 코드가 필요합니다.이것은 gcl.bat가 생성하는 oncrpc.dll 폴더에 있습니다.

실행하면 lisp 환경이 표시되며 (main)을 호출하여 주 함수를 실행합니다. (메인).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top