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