静态库是如何工作的?(C/C++)

2022-07-13 00:00:00 c c++ static-libraries

我知道如何使用和创建它们,但我找不到关于它是如何实现的、函数调用是如何发生的等等的文本,有人可以帮助我了解这些信息吗?因为我想了解它们,而不仅仅是知道它是什么以及它是如何工作的


解决方案

您可能知道,当您编译一个源文件时,您会得到一个目标文件。根据您的平台,它的扩展名可能是.o、.obj或其他任何文件。静态库基本上是目标文件的集合,有点像.Zip文件,但可能没有压缩。当尝试生成可执行文件时,链接器尝试解析引用的符号,即定位它们定义在哪个目标文件中(无论是在库中还是在其他位置),并将它们链接在一起。因此,静态库还可以包含已定义符号的索引,以便于执行此操作。具体实现取决于特定的链接器和库文件格式,但基本架构如上所述。

您可能希望查看维基百科或其他内容中的斜体关键字,以了解有关它们的更多信息。

相关文章