Compilation 如何将多个lisp fasl文件链接到单个文件中?

Compilation 如何将多个lisp fasl文件链接到单个文件中?,compilation,load,common-lisp,sbcl,Compilation,Load,Common Lisp,Sbcl,我开始学习lisp,正在寻找一种有效的方法来管理我的个人库 因此,我认为将我的库编译成一个单独的fasl文件(包含包信息和实际实现)会很有用,之后可以使用(load“lib.fasl”)加载该库。问题是,该库由多个*.lisp文件组成,比如foo.lisp和bar.lisp 我甚至分别使用(编译文件“foo.lisp”)和(编译文件“bar.lisp”)来分别编译它们 显然,当我想使用库中的每个文件(即foo.fasl和bar.fasl)时,手动加载库中的每个文件(即foo.fasl和bar.f

我开始学习lisp,正在寻找一种有效的方法来管理我的个人库

因此,我认为将我的库编译成一个单独的fasl文件(包含包信息和实际实现)会很有用,之后可以使用
(load“lib.fasl”)
加载该库。问题是,该库由多个*.lisp文件组成,比如foo.lisp和bar.lisp

我甚至分别使用
(编译文件“foo.lisp”)
(编译文件“bar.lisp”)
来分别编译它们

显然,当我想使用库中的每个文件(即foo.fasl和bar.fasl)时,手动加载
库中的每个文件(即foo.fasl和bar.fasl)会相当麻烦,因此我正在寻找类似

(link "foo.fasl" "bar.fasl" :output "lib.fasl")

生成一个lib.fasl,然后我可以
加载它

我不想使用核心文件,因为我希望能够灵活地组合我的库(这需要为每个可能的库组合创建一个单独的核心文件)

我在SBCL用户手册中搜索了执行此操作的lisp函数,在SBCL手册中搜索了使用CLI的函数,但没有找到任何内容

我更喜欢使用SBCL的解决方案,但我也会选择其他任何解决方案


提前谢谢

对于SBCL,IIRC只需将FASL文件连接到一个文件中即可

ASDF 3有一种从系统或具有所有依赖项的系统中构建单个FASL文件的方法(请参见
编译包op
单片编译包op

在其便携库中,还有一个函数<;代码>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;&

请注意,更常见的方法是创建


您可能还想探索。

在ASDF中,我发现了一个很好的管理库的工具,但我认为这个问题仍然很有趣,因为链接到fasls似乎不是一项很难的任务,而且似乎没有一种显而易见的方法。谢谢!我不认为连接可以做到这一点。正如我上面所说的,图像/核心文件对于发布软件来说似乎很好,但是对于合并许多不同的库来说,它们有点静态。已经找到了ASDF!目前,我发现简单的ASDF(使用
defsystem
:defsystem取决于
要求
)就足够了。使用
单片编译包op
创建软件版本与
要求
关闭我的系统并创建映像相矛盾,这方面有什么进步吗?
(compile-file "foo.lisp" "bar.lisp" :output "lib.fasl")  
$ cat f1.fasl f2.fasl .... > mypackage.fasl