我正在开发一个静态库,它被添加到我的主项目中,用于测试静态库的功能。里面的静态库使用了一些第三方组件,这个第三方组件需要添加一些额外的库(例如:libz.dylib,SystemConfiguration.Framework)。没关系,但是当我尝试构建包含静态库的主项目时,我遇到了大量的链接器错误。我想,如果我向主项目添加相同的框架和库,我需要添加到我的静态库,链接器错误消失,项目成功构建。问题是我真的需要将所有这些资源添加到主项目中吗?如果我将静态库提供给其他人使用,我会觉得很疯狂,我需要在文档中包含一堆框架和库,这些框架和库也必须在集成器项目中添加?或者我错过了一些重要的东西?
答案 0 :(得分:0)
这是因为静态库没有链接,与可执行文件或动态库不同。
静态库只是目标文件的存档,而目标文件包含对它们使用的符号的外部引用。在链接可执行文件/动态库之前,不会解析这些引用。
因此,当您链接到静态库时,您负责向链接器提供任何依赖库,这些库本身可以是静态的或动态的。