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


目录
相关文章
|
7月前
|
并行计算 安全 编译器
【C/C++ 编译相关 gcc】一次搞懂GCC编译选项:优化代码、调试程序必备!
【C/C++ 编译相关 gcc】一次搞懂GCC编译选项:优化代码、调试程序必备!
507 0
|
Dart Java 编译器
Android编译器及编译工具之编译器
习惯了IDE以及各种现成的编译工具为我们提供便捷的编译方式,我们很少会操心编译工具的编译过程和原理,但是工具越高级,隐藏的细节就越多,这样编译遇到问题时我们难以定位,遇到复杂的项目(尤其跨平台项目难以用ide)时不知如何下手。所以准备写两篇关于编译器和编译工具的文章。本文先来介绍编译工具。
216 0
|
自然语言处理 编译器 Go
揭秘Go语言编译黑盒:从源代码到神奇可执行文件的完整过程
揭秘Go语言编译黑盒:从源代码到神奇可执行文件的完整过程
74 0
|
机器学习/深度学习 编译器 C语言
【程序的编译和预处理】源文件到可执行程序到底经历了什么?
【程序的编译和预处理】源文件到可执行程序到底经历了什么?
140 0
【程序的编译和预处理】源文件到可执行程序到底经历了什么?
|
程序员 编译器 Linux
G0 语言编译运行说明 | 学习笔记
快速学习 G0 语言编译运行说明
|
存储 安全 编译器
基础C程序的开发和编译
基础C程序的开发和编译
基础C程序的开发和编译
|
编译器 开发工具
音视频开发: VS2017编译器编译libVLC错误解决
音视频开发: VS2017编译器编译libVLC错误解决
304 0
音视频开发: VS2017编译器编译libVLC错误解决
|
IDE 程序员 开发工具
如何看懂源代码--(分析源代码方法)
建立架构观点的认识是最重要的事情。虽然这一系列的文章前提为“阅读他人的程式码”,但我们真正想做的工作,并不在于彻底地详读每一行程式码的细节,而是想要透过重点式的程式码“摘读” ,达到对系统所需程度的了解。每个人在阅读程式码的动机不尽相同,需要了解的程度也就有深浅的分别。只有极为少数的情况下,你才会需要细读每一行程式码。
704 0