我有一个Xcode iOS项目(我将其称为超级项目),其中包含另一个Xcode iOS项目作为子项目。
子项目是iOS静态库。我完成了http://www.blog.montgomerie.net/easy-xcode-static-library-subprojects-and-submodules所描述的所有事情。
因此,静态库在超级项目的目标构建阶段下列为目标依赖项。
静态库已作为超级项目目标的构建阶段中的二进制库链接。在超级项目的一个类中,我能够引用子项目中的类,但是当我尝试构建超级项目时,我得到了大量未定义符号的错误。
这些“未定义的符号”是子项目(静态库)所依赖的框架中的类。我的问题是,如何让超级项目构建过程能够找到子项目所依赖的框架的头文件?
我认为链接静态库会处理这个问题,除非我做错了。仅仅为了它,我还尝试将子项目所依赖的所有框架作为二进制库链接到超级项目。
这摆脱了所有的错误,但随后构建仍然失败,因为它说有33个重复的符号(因为现在两个项目都链接相同的框架)。
我认为超级项目不应该链接子项目的框架依赖项。提前谢谢。
答案 0 :(得分:2)
我认为您的问题是,当构建失败并且出现大量“未定义符号”错误时,超级项目找不到所有静态库头。 在“构建设置”选项卡下查看超级项目设置面板。找到“标题搜索路径”和“用户标题搜索路径”(或类似的东西),并在其中放入子项目标题文件夹的路径。如果将/ **放在路径的末尾,xcode将在路径的所有子文件夹内搜索。 确保“始终搜索用户标题搜索路径”标志为/ true。