読者です 読者をやめる 読者になる 読者になる

quicklisp を使ったプログラムの実行ファイルの作り方

lisp

quicklisp なるものを最近知ったので覚え書き。

(ql:quickload "hogehoge")

を含むファイルをコンパイルするには quicklisp そのものをまずロードする。

(load "~/quicklisp/setup.lisp")

これがまず最初に必要らしい。例えば

(load "~/quicklisp/setup.lisp")
(ql:quickload "cl-opengl")
(ql:quickload "cl-glu")
(ql:quickload "cl-glut")

プログラム本体(トップレベルの関数を main としておく)

のようにする。これを test.lisp に保存。

実行ファイルを作るには repl に入って

> (load "test.lisp")

> (sb-ext:save-lisp-and-die "test.image" ;; 実行ファイル名
                            :toplevel #'main ;; トップレベルの関数名
                            :executable t)

を実行。ただしこれは sbcl の場合で他の処理系だと少し違うはず。すると実行ファイル test.image ができるので、ターミナルで

./test.image

で実行できる。ただしこれはファイルサイズがかなり大きい。

次に fasl の作り方と実行のやり方

作るのは repl で load, compile-file すれば簡単。

ターミナルでは

sbcl --quit --load test.lisp --eval '(compile-file "test.lisp")'

とすると test.fasl ができる。実行はロードしてトップレベル関数を評価すればいい。

sbcl --quit --load test.fasl --eval '(main)'

これも sbcl のやり方なので他の処理系では若干違うはず。