CLisp 21:模块化构建程序
来源:互联网 发布:赤月传说2麻痹升级数据 编辑:程序博客网 时间:2024/06/08 14:48
如果开发一个稍微大一点的程序,就需要管理一大堆的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*中添加模块名。
在网上下载一个开源代码后,通常都会加载失败。
失败原因1:undefined function defsystem。打开asd文件,在defsystem语句前面加上一行(in-package :asdf)即可。
失败原因2:Component XXX not found, required by #<SYSTEM YYY>。说的是缺少依赖的模块,打开asd文件,找到defsystem下面的:depends-on,看看到底依赖什么。没办法,只能继续下载更多的文件。建议到http://common-lisp.net/projects.shtml上面下载东西。
- CLisp 21:模块化构建程序
- 浅谈代码分层:构建模块化程序
- 浅谈代码分层:构建模块化程序
- 浅谈代码分层:构建模块化程序
- 浅谈代码分层:构建模块化程序
- 浅谈代码分层:构建模块化程序
- 浅谈代码分层:构建模块化程序
- 如何利用maven eclipse构建模块化的程序
- CLisp 22:单步跟踪LISP程序
- CLisp 28:调用C程序详细指导
- Clisp的前生,程序编辑器选择
- 项目模块化构建记录
- CLisp 9:获取系统环境变量,执行外部程序
- CLisp 29:调用C程序之回调函数
- CLisp 30:调用C程序之外部变量
- CLisp 31:调用C程序之外部函数
- 为什么软件不能模块化构建?
- 基于webpack的模块化构建
- 那些年,我们一起做过的贪心
- hdu 3685 Rotational Painting
- 分享下多年积累的对JAVA程序员成长之路的总结
- HttpClient, 使用C#操作Web
- 快速幂以及快速矩阵幂
- CLisp 21:模块化构建程序
- 被FMOD的内存管理坑了一把
- ACM-ICPC比赛随想——刘汝佳 (转)
- Missing javax.transaction.jta artifact
- QT与OpenGL之教你如何测试坐标轴极值
- advice
- 我的并查集——Codeforces Contets#134 div2 Problem C
- 一个清华大学毕业生做猎头的感受(转)
- java 编译器和虚拟机的版本不匹配