使用ASDF获取编译结果作为单个文件

时间:2014-08-15 15:08:06

标签: compilation lisp common-lisp asdf

是否可以告诉ASDF它应该只为整个系统生成一个fas(l)文件?此文件应该是系统所有已编译文件的串联(按正确顺序),包括目标系统所依赖的系统的所有文件。

3 个答案:

答案 0 :(得分:4)

是的,compile-bundle-op(ASDF 3.1):http://common-lisp.net/project/asdf/asdf/Predefined-operations-of-ASDF.html

编辑:实际上,要求monolithic-compile-bundle-op个问题(如其他答案所示)。

答案 1 :(得分:2)

如果您必须预测扩展程序,请使用uiop:compile-file-type。 和/或您可以致电(asdf:output-files 'asdf:monolithic-compile-bundle-op :my-system)来确定实际使用的内容。

答案 2 :(得分:1)

选项monolithic-compile-bundle-op将创建包含所有依赖项的单个编译文件,而compile-bundle-op为每个系统创建一个文件。

使用示例:

(asdf:operate 'asdf:monolithic-compile-bundle-op :my-system)

此命令将在目标项目的输出目录中创建文件my-system--all-systems.fas(l),以及为每个系统创建“捆绑”文件,名称为my-system--system.fas(l)