Vra

Ek het net begin leer Lisp en ek kan nie uitvind hoe om te stel en skakel lisp kode om'n uitvoerbare.

Ek is met behulp van clisp en clisp -c produseer twee lêers:

  • .fas
  • .lib

Wat doen ek volgende om'n uitvoerbare?

Was dit nuttig?

Oplossing

Ek was eintlik besig om dit vandag te doen, en ek het gevind dat tik dit in die CLisp REPUBLIEK gewerk:

(EXT:SAVEINITMEM "executable.exe"
                 :QUIET t
                 :INIT-FUNCTION 'main
                 :EXECUTABLE t
                 :NORC t)

waar belangrikste is die naam van die funksie wat jy wil om te bel wanneer die program loods, :QUIET t onderdruk die begin vaandel, en :EXECUTABLE t maak 'n boorling uitvoerbare.

Dit kan ook nuttig wees om te bel

(EXT:EXIT)

aan die einde van jou hooffunksie om die gebruiker te verhoed om 'n interaktiewe lisp vinnige wanneer die program gedoen word.

EDIT: Lees die dokumentasie, kan jy ook wil :NORC t voeg (Lees skakel ). Dit onderdruk die laai van die RC lêer (vir voorbeeld, ~/.clisprc.lisp).

Ander wenke

Dit is'n Lisp FAQ (effens aangepas):

*** Hoe maak ek'n uitvoerbare van my program?

Dit hang af van jou-implementering;jy sal nodig hê om te raadpleeg jou verkoper se dokumentasie.

  • Met die ECL en GCL, die standaard samestelling proses sal produseer'n boorling uitvoerbare.

  • Met LispWorks, sien die Aflewering Gebruiker se Gids afdeling van die dokumentasie.

  • Met Allegro Algemene Lisp, sien die Aflewering afdeling van die handleiding.

  • ens...

Egter, die klassieke manier van interaksie met'n Gemeenskaplike Lisp programme behels nie selfstandige executables.Kom ons kyk na dit tydens twee fases van die proses van ontwikkeling:ontwikkeling en dienslewering.

Programmering fase:Algemene Lisp ontwikkeling het meer van'n inkrementele voel as wat algemeen in die bondel-georiënteerde tale, waar'n wysig-stel-skakel siklus is algemeen.'n CL ontwikkelaar sal loop eenvoudige toetse en verbygaande interaksies met die omgewing by die REPL (of Lees-Eval-Druk-Lus, ook bekend as die luisteraar).Bron-kode is gestoor in lêers, en die bou/laai afhanklikhede tussen die bron lêers is opgeneem in'n stelsel-beskrywing fasiliteit soos ASDF (wat speel'n soortgelyke rol te maak in wysig-stel-skakel stelsels).Die stelsel-beskrywing fasiliteit bied instruksies vir die bou van'n stelsel (en slegs recompiling lêers wie se afhanklikhede verander het sedert die laaste bou), en vir die laai van'n stelsel in die geheue.

Mees Algemene Lisp implementering bied ook'n "red-wêreld" meganisme wat maak dit moontlik om te red van'n momentopname van die huidige lisp beeld, in'n vorm wat later begin word.'n Gemeenskaplike Lisp omgewing oor die algemeen bestaan uit'n relatief klein uitvoerbare runtime, en'n groter beeld-lêer wat bevat die toestand van die lisp wêreld.'n algemene gebruik van hierdie fasiliteit is om te stort'n persoonlike beeld wat al die bou gereedskap en biblioteke wat gebruik word op'n gegewe projek, in orde om te verminder die begin van tyd.Byvoorbeeld, hierdie fasiliteit is beskikbaar onder die naam EXT:RED-LISP in CMUCL, SB-EXT:RED-LISP-EN-STERF in SBCL, EXT:SAVEINITMEM in CLISP, en CCL:RED-AANSOEK in OpenMCL.Die meeste van hierdie implementering kan plaas die runtime van die beeld, waardeur dit uitvoerbare.

Aansoek aflewering:eerder as die opwekking van'n enkele uitvoerbare lêer vir'n aansoek, Lisp ontwikkelaars oor die algemeen red'n beeld met hul aansoek, en lewer dit aan kliënte saam met die runtime en moontlik'n shell-script papiertjie wat hom die runtime met die aansoek beeld.Op Windows platforms dit kan wees weggesteek van die gebruiker deur die gebruik van'n kliek-o-matic InstallShield tipe instrument.

Neem 'n blik op die amptelike clisp tuisblad. Daar is 'n Vrae wat hierdie vraag beantwoord.

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

CLiki het 'n goeie antwoord sowel: skep Executables

Vir 'n draagbare manier om dit te doen, Ek beveel aan Roswell .

Vir enige ondersteun implementering kan jy lisp skrifte aan die program wat in 'n draagbare manier kan hardloop deur ros wat gebruik kan word in 'n hash-bang lyn soortgelyk aan 'n luislang of robyn program sê hardloop skep.

Vir SBCL en CCL Roswell kan ook binêre executables skep met ros dump executable.

Ek weet dit is 'n ou vraag maar die Lisp kode Ek is op soek na is 25 jaar oud: -)

Ek kon nie samestelling kry die werk met clisp op Windows 10. Maar dit het gewerk vir my met GCL .

As my lisp lêer is jugs2.lisp,

gcl -compile jugs2.lisp

Dit produseer die lêer jugs2.o as jugs2.lisp lêer het geen foute.

Run GCL met geen parameters om die lisp tolk van stapel te stuur:

gcl

Laai die .o lêer:

(load "jugs2.o")

Om 'n EXE skep:

(si:save-system "jugs2")

Wanneer die EXE word gelei wat dit nodig het die DLL oncrpc.dll; hierdie is in die gids <gcl install folder>\lib\gcl-2.6.1\unixport dat gcl.bat skep.

Wanneer hardloop dit 'n lisp omgewing toon, bel (hoof) aan die hooffunksie hardloop (Hoof).

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top