什么是鸡计划的图书馆单元?



术语"单位"和"库单位"在网站上的许多地方都有使用,但我没有找到这些术语的文档甚至定义。我找到的唯一描述是在"用户手册/支持的语言/声明/(单位|用途)"中。在"用户手册/使用编译器/具有多个文件的示例"中还有一个示例。如您所见,非常稀缺。

如果我得到回复,下一个问题是"单元"与"用户手册/支持的语言/模块"中描述的模块有何关系?我想"单位"以某种方式与编译有关,而模块与方案值名称有关。

Unit是"编译单元"的缩写,它基本上是一个编译库。如果您查看 CHICKEN 的源代码,您会注意到手册中的每个单元(大致)对应于一个源文件。每个源文件分别编译成一个.o文件,这些单元都链接在一起成libchicken.so/libchicken.a

这个术语不再很相关,除非你静态链接。然后你需要(declare (uses ...)),它指的是单位名称。这是必需的,因为特定单元的顶层需要在依赖于它的顶级之前运行,以便加载任何定义。

在新式代码中,通常只使用模块,但这意味着代码不可静态链接。我们知道这令人困惑,这就是为什么我们试图使用 CHICKEN 5 使与模块的静态链接更容易,并减少了解单位的需求。

最新更新