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

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

时间: 2024-08-03 20:17:53

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

《深入理解Android 5 源代码》——第2章,第2.4节编译源代码

2.4 编译源代码编译Android源代码的方法非常简单,只需使用Android源代码根目录下的Makefile,执行make命令即可实现.当然在编译Android源代码之前,首先要确定已经完成同步工作.进入Android源代码目录使用make命令进行编译,使用此命令的格式如下所示: $: cd ~/Android5.0(这里的"Android就是我们下载源代码的保存目录) $: make 编译Android源代码可以得到"~/project/android/cupcake/out&q

《深入理解Android 5 源代码》——第2章,第2.5节编译源代码生成SDK

2.5 编译源代码生成SDK在Android 5.0的源代码的根目录下有一个SDK目录,所有和SDK相关的代码都放在这个目录中,包括镜像文件.模拟器和ADB等常用工具,以及SDK中的开发包的文档,可以通过编译的方式来生成开发需要的SDK,编译命令如下所示: $ Make SDK 当编译完成后,会在/out/host/linux-x86/sdk/目录下生成SDK,这个SDK是完全与源代码同步的,与官方网站上下载的SDK功能完全相同,包含了开发用的JAR包.模拟器管理工具和ADB调试工具,可以使用这

编译错误-java网络socket编程过程中遇到的问题

问题描述 java网络socket编程过程中遇到的问题 运行代码 import java.io.*; import java.net.*; public class InetAddressDemo { public static void main(String[] args) { Socket socket = null; InputStream is = null; OutputStream os = null; String serverIP = "127.0.0.1"; int

asp.net源程序编译为dll文件并调用过程

使用csc命令将.cs文件编译成.dll的过程 很多时候,我们需要将.cs文件单独编译成.dll文件, 操作如下: 打开命令窗口->输入cmd到控制台->cd C:WINDOWSMicrosoft.NETFrameworkv1.1.4322 转到vs.net安装的该目录下->执行csc命令csc /target:library File.cs->在该目录下产生一个对应名字的.dll文件(前提:把.cs文件放到C:WINDOWSMicrosoft.NETFrameworkv1.1.4

Eclipse编译源代码时遇到的问题

问题描述 我刚开始学java,这几天看了<java深度历险>学习import和package机制,然后我想把其中一个用javac命令实现的情况再次用eclipse实现以下,看看其中的差别.源代码是(相信看过这本书的人都对这个实验有点印象):public class A {public static void main(String[] arg){B b=new B();b.print();} }public class B {public void print(){System.out.pri

RHEL6.2编译安装MySQL 5.6.16过程分享_Mysql

一.环境说明: 复制代码 代码如下: [root@beanvm ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.2 (Santiago) [root@beanvm ~]# uname -a Linux beanvm 2.6.32-220.el6.i686 #1 SMP Wed Nov 9 08:02:18 EST 2011 i686 i686 i386 GNU/Linux 二.准备工作与系统配置 1.下载

编译和安装Mysql数据库的过程

Mysql是一款开源的关系型数据库软件,它凭借其高性能.高可靠性和易于使用的特性,成为服务器领域中最受欢迎的开源数据库系统.目前互联中使用Mysql数据的大多是一些web服务器,因为当前比较流行使用PHP+Mysql做动态网站,所以今天讲解的Mysql数据也是针对于网站的.如果有些地方解释的不是很好,希望大家多多谅解,多多支持.谢谢大家!!! 1.安装前的准备工作 如果以前有安装过.rpm格式的mysql,在这里需要将其卸载,以免出现程序或端口冲突. [root@lcoalhost /]#rpm

ubuntu12.04 /centos 环境下源码编译安装mysql 5.7.14过程详解

1,安装前期工作.创建mysql用户以及数据存放目录 groupadd mysql useradd -r -g mysql -s /bin/false mysql mkdir -p  /data/mysql/ chown  -R mysql.mysql  /data/mysql/ 安装依赖包: apt-get install build-essential libncurses5-dev cmake openssl*  -y 2,前期工作做完,,准备下载源码包编译安装和初始化. 到mysql官网

SUSE Linux下源码编译方式安装MySQL 5.6过程分享_Mysql

MySQL为开源数据库,因此可以基于源码实现安装.基于源码安装有更多的灵活性.也就是说我们可以针对自己的硬件平台选用合适的编译器来优化编译后的二进制代码,根据不同的软件平台环境调整相关的编译参数,选择自身需要选择不同的安装组件,设定需要的字符集等等一些可以根据特定应用场景所作的各种调整.本文描述了如何在源码方式下安装MySQL. 1.安装环境及介质 复制代码 代码如下: #安装环境 SZDB:~ # cat /etc/issue Welcome to SUSE Linux Enterprise