4

我有一个 Xcode iOS 项目(我称之为超级项目),其中包含另一个 Xcode iOS 项目作为子项目。

子项目是一个 iOS 静态库。我已经完成了http://www.blog.montgomerie.net/easy-xcode-static-library-subprojects-and-submodules中描述的一切。

因此,静态库被列为超级项目目标构建阶段下的目标依赖项。

在超级项目的目标构建阶段,静态库已经链接为二进制库。在超级项目的一个类中,我可以引用子项目中的类,但是当我尝试构建超级项目时,我会遇到大量未定义符号的错误。

这些“未定义符号”是子项目(静态库)所依赖的框架中的类。我的问题是,如何让超级项目构建过程能够定位子项目所依赖的框架的头文件?

我假设链接静态库会处理这个问题,除非我做错了什么。只是为了它,我还尝试将子项目所依赖的所有框架作为二进制库链接到超级项目。

这消除了所有错误,但构建仍然失败,因为它说有 33 个重复的符号(因为现在两个项目都链接相同的框架)。

我不认为超级项目应该链接子项目的框架依赖。提前致谢。

4

1 回答 1

2

我认为您的问题是,当构建失败并出现大量“未定义符号”错误时,超级项目找不到所有静态库头文件。在构建设置选项卡下查看超级项目设置面板。找到“标头搜索路径”和“用户标头搜索路径”(或类似的东西)并将子项目标头文件夹的路径放入其中。如果你把 /** 放在路径的末尾,xcode 将在路径的所有子文件夹中搜索。确保“始终搜索用户标题搜索路径”标志为 on/true。

于 2014-02-06T12:02:21.050 回答