如何使用sbcl生成可执行的lisp脚本文件

106 views
Skip to first unread message

Haiwei

unread,
Aug 20, 2008, 12:54:44 AM8/20/08
to lisp.china
1.在你的defpackage中,加入 :use #:cl-user
2. 定义一个叫cl-user::main的函数,这个函数将是程序执行的起点
3. 用slime的话,C-c C-k可以编译出一个fasl文件
4. (sb-executable:make-executable "/home/haiwei/work/judy.bin" "/home/
haiwei/work/judy-command.fasl" :initial-function 'main)

现在我们就得到了一个可执行的脚本文件。这个文件略微大于你的fasl文件,而且只依赖于sbcl这个程序,没有其他的库依赖。

如果使用SB-EXT:SAVE-LISP-AND-DIE来生成二进制可执行文件,就会发现那个二进制文件有27M左右。因为,sbcl把自己的放到
这个二进制文件里面了。

注意,第二点十分重要,不能直接定义一个叫main的函数,因为这个函数会被intern到你定义的package里面。而sbcl初始化完之后,默认
在cl-user的包当中。

Andelf

unread,
Aug 20, 2008, 2:49:51 AM8/20/08
to lisp...@googlegroups.com


2008/8/20 Haiwei <high...@gmail.com>

1.在你的defpackage中,加入 :use #:cl-user
2. 定义一个叫cl-user::main的函数,这个函数将是程序执行的起点
3. 用slime的话,C-c C-k可以编译出一个fasl文件
4. (sb-executable:make-executable "/home/haiwei/work/judy.bin" "/home/
haiwei/work/judy-command.fasl" :initial-function 'main)
 
感谢分享
嘿嘿
马上就试试

Reply all
Reply to author
Forward
0 new messages