Re: Compiling a binary that uses quicklisp
Brandon Hale <[email protected]> Thu, 9 Feb 2023 19:07:59 -0500
| Newsgroups | gmane.lisp.ecl.general |
|---|---|
| Message-ID | <[email protected]> |
> ecl produces elf binaries. You will want to compile, and link all > your code into this executable file. So you don't need to load asdf or > anything else at run-time (in the prologue-code). Instead, you load > asdf, quicklisp, and your code, when you generate the executable with > make-build. > > Have a look at the hello-world project > https://gitlab.com/informatimago/hw/ > to see how to produce executables. > > In particular, in the case of ecl: > > https://gitlab.com/informatimago/hw/-/blob/master/generate.lisp#L216 Thank you, I will look into this link. I must admit, I don't know much C at all, but it looks like the code I really need is all in Common Lisp. I will study all of this and try to make sense of what is happening here. It looks like there is a lot to it! Brandon Hale On 2/9/23 18:28, Pascal Bourguignon wrote: > Le 10/02/2023 à 00:20, Brandon Hale a écrit : >> Hello all, >> >> I apologize if this is either the wrong place to get help with ecl, >> or if this is asked all of the time. I've written a small replacement >> for i3status with common lisp and want to use ecl to make a binary so >> when i3wm loads, it just loads the cl-i3status binary. I've looked at >> the ecl documentation online and it suggests doing something like this: >> >> (ql:quickload :cl-i3) >> >> (asdf:make-build :cl-i3 >> >> :type :program >> >> :move-here #P"/home/brandon/Programming/lisp/cl-i3/" >> >> :prologue-code '(require 'asdf)) >> >> So, I run this and the binary appears. However, when I try to run it, >> I get this output: >> >> ;;; Loading #P"/usr/lib/ecl-21.2.1/asdf.fas" >> ;;; Computing Hangul syllable names >> Condition of type: MISSING-COMPONENT >> Component "str" not found >> >> Available restarts: >> >> 1. (RETRY) Retry ASDF operation. >> 2. (CLEAR-CONFIGURATION-AND-RETRY) Retry ASDF operation after >> resetting the configuration. >> >> Top level in: #<process TOP-LEVEL 0x557ade1c2f80>. >>> >> >> I imagine it is just because of my use of quicklisp packages, but how >> do I compile the packages into the binary? >> >> Thank you very much for any help you can offer, > > > ecl produces elf binaries. You will want to compile, and link all > your code into this executable file. So you don't need to load asdf > or anything else at run-time (in the prologue-code). Instead, you load > asdf, quicklisp, and your code, when you generate the executable with > make-build. > > Have a look at the hello-world project > https://gitlab.com/informatimago/hw/ > to see how to produce executables. > > In particular, in the case of ecl: > > https://gitlab.com/informatimago/hw/-/blob/master/generate.lisp#L216 > >