尝试访问子项目文件时,从错误xcode引用的“_OBJC_CLASS _ $ _”

时间:2016-04-09 06:16:12

标签: ios xcode

我在我的xcode项目中使用了一个子项目,其中包含我想在我的主项目中访问的文件。我已经在我的构建设置中的“Header Search Paths”中将目录放到了这些文件中,所以当我导入它们时,我没有遇到任何编译器错误。我将子项目文件添加到子项目的Build Phases中的编译源。我将主项目的文件添加到主项目的编译源中。但是,当我尝试构建时,我收到以下错误:

Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_LoginService", referenced from:
objc-class-ref in GettingStartedViewController.o
"_OBJC_CLASS_$_ProfileService", referenced from:
objc-class-ref in GettingStartedViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

有关修复此问题的任何想法?有没有一种方法可以将子项目的文件添加到主项目的编译源中?当我这样做时,它在xcode中创建一个单独的组,而不实际将文件添加到主项目的编译源 谢谢!

1 个答案:

答案 0 :(得分:6)

链接器抱怨,因为它无法找到这些符号。假设LoginService和ProfileService来自您的子项目,您需要做的是将这些库(可能是从子项目构建的目标)添加到" Link Binary With Libraries"在构建阶段。

此外,您需要仔细检查您正在构建的主要目标的Scheme,并确保正在构建这些子项目的目标(这将在Scheme对话框左侧显示的Build阶段中) )。如果没有,您需要添加它们。

这是将库添加到方案中。请注意,如果您有"查找隐式依赖关系"检查,你不应该做任何事情。我构建了一个测试用例来进行双重检查(使用Xcode 7.3.1)

enter image description here