gpt4 book ai didi

compilation - 如何将多个 lisp-fasl 文件链接到一个文件中?

转载 作者:行者123 更新时间:2023-12-04 03:13:58 26 4
gpt4 key购买 nike

我开始学习 lisp,并正在寻找一种有效的方式来管理我的个人图书馆。

所以我认为将我的库编译成单个 fasl 文件(包含包信息和实际实现)会很有用,之后我可以使用 (load "lib.fasl") 包含库。问题是,该库由多个 *.lisp 文件组成,比方说 foo.lispbar.lisp

我分别使用 (compile-file "foo.lisp")(compile-file "bar.lisp") 分别编译它们.

很明显,当我想使用它们,所以我正在寻找类似的东西

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

(compile-file "foo.lisp" "bar.lisp" :output "lib.fasl")  

生成一个 lib.fasl,然后我可以LOAD

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

我在 SBCL 用户手册中搜索了执行此操作的 lisp 函数,并在 SBCL 联机帮助页中搜索了使用 CLI 的功能,但我什么也没找到。

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

提前致谢!

最佳答案

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

ASDF 3 有一种方法可以从系统或具有所有依赖项的系统构建单个 FASL 文件(参见 compile-bundle-opmonolithic-compile-bundle-op)。

在其可移植库uiop中还有一个函数combine-fasls,它支持多种CL实现。

关于compilation - 如何将多个 lisp-fasl 文件链接到一个文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31501529/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com