2015-04-23 81 views
0

我正在开发一个静态库,它被添加到我的主项目中,用于测试静态库的函数。里面的静态库使用了一些第三方组件,这个第三方组件需要添加一些额外的库(例如:libz.dylib,SystemConfiguration.Framework)。这很好,但是当我尝试构建包含静态库的主项目时,出现了一堆链接器错误。我想,如果我将相同的框架和库添加到我需要添加到静态库的主项目中,链接器错误消失并且项目已成功构建。问题是我真的需要将所有这些资源添加到主项目中吗?我发现如果我将我的静态库提供给其他人使用,我需要在文档中包含一些框架和库,这些文档中也必须添加到集成项目中,这让我感到非常的疯狂。或者我错过了一些重要的东西?项目中的静态库:为什么静态库使用的框架也需要添加到项目中?

回答

0

这是因为静态库没有链接,不像可执行文件或动态库。

静态库只是对象文件的存档,而对象文件包含对它们使用的符号的外部引用。这些引用在链接可执行文件/动态库之前不会被解析。

因此,当您链接到一个静态库时,您负责为链接器提供任何相关库,而链接器本身可以是静态的或动态的。

相关问题