我在我的 xcode 项目中使用一个子项目,其中包含我想在我的主项目中访问的文件。我已将这些文件的目录放在我的build设置中的“标题搜索路径”中,因此当我导入它们时,我不会收到任何编译器错误。我已将子项目文件添加到子项目构建阶段的编译源中。我将主项目的文件添加到主项目的编译源中。但是,当我尝试构建时,出现以下错误:
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 中创建一个单独的组,而不会实际将文件添加到主项目的编译源中。
谢谢!
最佳答案
链接器正在提示,因为它找不到这些符号。假设 LoginService 和 ProfileService 来自您的子项目,您需要做的是将这些库(大概是从子项目构建的目标)添加到构建阶段中的“Link Binary With Libraries”。
此外,您需要仔细检查您正在构建的主要目标的方案,并确保正在构建这些子项目的目标(这将在方案对话框左侧显示的构建阶段).如果没有,您将需要添加它们。
这是将库添加到方案中。请注意,如果您选中了“Find Implicit Dependencies”,则无需执行任何操作。我构建了一个测试用例来仔细检查(使用 Xcode 7.3.1)
关于ios - 尝试访问子项目文件时从错误 xcode 引用 "_OBJC_CLASS_$_",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36513422/