ios - 尝试访问子项目文件时从错误 xcode 引用 "_OBJC_CLASS_$_"

标签 ios xcode

我在我的 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)

enter image description here

关于ios - 尝试访问子项目文件时从错误 xcode 引用 "_OBJC_CLASS_$_",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36513422/

相关文章:

ios - 将图片放入 DynamoDB

c# - Monotouch 自动增量内部版本号及版本号

iOS:当应用程序因任何崩溃而退出时是否有任何委托(delegate)方法

iphone - 是否可以将应用程序永久部署到客户端?

ios - 如果 registerForRemoteNotificationTypes : is not supported in iOS 8. 0 及更高版本,则为 iOS 构建

ios - 如何改善我的ios App中图像的移动

ios - 将数据从 ChildViewController 传递到 ParentViewController

iphone - 使用MKMapView时如何设置精度和距离过滤器

ios - iPad 的页面模态尺寸

iphone - iTunes 无法从同步服务加载数据类信息