CLisp 21:模块化构建程序

如果开发一个稍微大一点的程序,就需要管理一大堆的LISP文件。编译顺序、加载顺序对LISP非常重要,顺序错了,要么加载失败,要么构建了错误的程序。

模块化构建程序,就是把LISP源文件划分成多个模块,变成程序->模块->文件三层结构。

 

推荐使用用asdf管理Lisp程序模块,需要下载asdf.lisp,安装很简单,执行(require ‘asdf)即可。

每个模块都要有一个描述文件,module-name.asd。该文件声明了模块名,和构成该模块的文件列表。可以描述lisp文件之间的依赖关系,也可以描述模块之间的依赖关系。asd文件,类似于VC的工程文件,类似于make文件。

加载模块的方法1

(push #p”example/” asdf:*central-registry*) :添加asd文件所在的目录

       (asdf:load-system “module-name”) :加载一个模块

加载模块的方法2

(load “example/module-name.asd”) :读取asd文件的内容,不加载模块

(asdf:load-system “module-name”) :加载一个模块

       一般来讲,加载一个模块时,模块的初始化代码会往变量*features*中添加模块名。

       在网上下载一个开源代码后,通常都会加载失败。

       失败原因1undefined function defsystem。打开asd文件,在defsystem语句前面加上一行(in-package :asdf)即可。

       失败原因2Component XXX not found, required by #<SYSTEM YYY>。说的是缺少依赖的模块,打开asd文件,找到defsystem下面的:depends-on,看看到底依赖什么。没办法,只能继续下载更多的文件。建议到http://common-lisp.net/projects.shtml上面下载东西。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值