揭示我的无知:为什么静态库项目(在我的情况下在Visual Studio中)在项目属性页面中没有链接器设置?我认为“链接”是一个很大的问题:图书馆,但显然我从根本上误解了一些东西。
答案 0 :(得分:15)
制作可执行文件的过程分为三个步骤:
库只是一个对象集合,根据定义尚未链接。链接器不用于创建库,因此它没有链接器选项是有道理的。
答案 1 :(得分:5)
链接是将目标文件组合成可执行文件(和动态库,类似于可执行文件格式)的过程。
静态库没有链接,它们是目标文件的简单存档。
在项目中引用静态库时,目标文件从库中提取并与特定项目的文件链接在一起。
答案 2 :(得分:4)
因为你没有链接它,纯粹而简单。
链接是将所有目标文件和库组合在一起以创建可执行文件的行为。在静态库项目中,您没有创建可执行文件,您只需创建一个稍后将链接的库。
例如(这是UNIX而不是Windows,但概念类似),您可以使用编译器cc
将源文件转换为目标文件,并使用归档器ar
来转换那些进入图书馆。在您想要进入下一步并将库包含在可执行文件中之前,链接器(或链接编辑器)ld
不需要参与。