鉴于如下的简单程序,您将如何:
将其编译为要由实现加载的单独图像文件,并使用哪些命令行参数加载它?
将其编译为可以按原样加载和运行的独立二进制文件。
注意:我在保存应用程序时尝试添加“:prepend-kernel t”,以便抛出跟随错误。
Error: value NIL is not of the
expected type REAL. While executing:
CCL::<-2, in process Initial(0).
您如何压制欢迎讯息?
该计划
(defun main ()
(format t "This is the program.")0)
修改
讨厌回答我自己的一部分问题,但我发现了它。
加载函数后,键入以下内容进行编译:
(ccl:save-application "app")
这会创建一个图像文件。通过将其传递给实现类型来加载它(注意:'ccl'二进制文件在我的系统路径中);
ccl -I app
要运行顶级函数,请将其作为参数传递
ccl -I app --eval (main)
答案 0 :(得分:29)
编译和加载Lisp文件
您可以通过调用
编译名为/foo/bar.lisp
的文件
(compile-file "/foo/bar.lisp")
这将创建一个 fasl (FASt Load)文件,其中包含本机代码。
您可以使用函数LOAD
加载已编译的文件fasl文件。 LOAD
和COMPILE-FILE
是标准的Common Lisp函数。
创建应用
一些定义:
您可以通过调用CCL特定功能来保存应用程序:
(save-application "/foo/bar-image" :toplevel-function #'main)
这将保存一个图像,您可以使用命令shell中的CCL内核运行该图像:
ccl -I /foo/bar-image
要保存包含内核的可执行文件,请使用Lisp:
(save-application "/foo/bar-app"
:toplevel-function #'main
:prepend-kernel t)
您可以像往常一样使用/foo/bar-app
从命令shell调用此可执行文件。
在Clozure Common Lisp中你可以检查
*command-line-argument-list*
提供命令行参数列表。