lisp编译源代码为native可执行程序的过程(收集)

简介: 下面记录一下ccl编译一个可执行程序的过程,其中最关键的是ccl:save-application apple@apple-System:~$ ccl Welcome to Clozure Common Lisp Version 1.11-r16635  (LinuxX8632)! CCL

sbcl


(defun main ()
  (format t "Hello, world!~%"))

(sb-ext:save-lisp-and-die "hello-world"
  :executable t
  :toplevel 'main)


ccl


下面记录一下ccl编译一个可执行程序的过程,其中最关键的是ccl:save-application


apple@apple-System:~$ ccl

Welcome to Clozure Common Lisp Version 1.11-r16635  (LinuxX8632)!

CCL is developed and maintained by Clozure Associates. For more information
about CCL visit http://ccl.clozure.com.  To enquire about Clozure's Common Lisp
consulting services e-mail info@clozure.com or visit http://www.clozure.com.

? (defun hello-world ()
  (format t "Hello, world"))
HELLO-WORLD
? (defun main ()
  (hello-world))
MAIN
? (ccl:save-application "test"
                      :toplevel-function #'main
                      :prepend-kernel t
                      :purify t
                      :impurify t)
apple@apple-System:~$ ./test
Hello, world
apple@apple-System:~$ file test
test: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=4daa568917548153e303eb1bf285371cd635f875, not stripped
apple@apple-System:~$ ll test

-rwxr-xr-x 1 apple apple 18919440  1月  4 22:30 test*


参考


http://www.cliki.net/Creating%20Executables


目录
相关文章
|
6月前
|
存储 Java 编译器
心得经验总结:源代码、目标代码、可执行代码、本地代码的区别
心得经验总结:源代码、目标代码、可执行代码、本地代码的区别
203 0
|
自然语言处理 编译器 Go
揭秘Go语言编译黑盒:从源代码到神奇可执行文件的完整过程
揭秘Go语言编译黑盒:从源代码到神奇可执行文件的完整过程
71 0
|
程序员 编译器 Linux
G0 语言编译运行说明 | 学习笔记
快速学习 G0 语言编译运行说明
|
存储 安全 编译器
基础C程序的开发和编译
基础C程序的开发和编译
基础C程序的开发和编译
|
IDE 程序员 开发工具
如何看懂源代码--(分析源代码方法)
建立架构观点的认识是最重要的事情。虽然这一系列的文章前提为“阅读他人的程式码”,但我们真正想做的工作,并不在于彻底地详读每一行程式码的细节,而是想要透过重点式的程式码“摘读” ,达到对系统所需程度的了解。每个人在阅读程式码的动机不尽相同,需要了解的程度也就有深浅的分别。只有极为少数的情况下,你才会需要细读每一行程式码。
699 0