我正在尝试使用 Xcode 在 Objective C 和 C++ 中为 iOS 编写一个简单的游戏引擎。
我做了一个游戏项目和一个游戏引擎项目。后者作为子项目添加到前者。该引擎还作为目标依赖项和作为要链接到游戏项目中的二进制文件添加。
我的引擎使用CADisplayLink
,所以我添加QuartzCore.framework
了引擎项目的“链接二进制文件与库列表”(在构建阶段中找到)。
现在,当我尝试构建我的游戏项目(带有子项目的项目)时,我收到了这个错误:
Undefined symbols for architecture i386: "_OBJC_CLASS_$_CADisplayLink", referenced from: objc-class-ref in libVoya-iOS.a
此错误仅在从游戏项目构建时发生 - 从引擎项目执行此操作正常。如果我添加QuartzCore.framework
到游戏项目建设工作正常。
我必须特别要求我的目标依赖项之一已经需要的框架,这真的是真的吗?在这种情况下:我的引擎(子项目)已经链接了 QuartzCore - 真的有必要在使用这个引擎的项目中这样做吗?感觉就像无缘无故的双重工作。
或者也许我只是完全误解了一些东西?:)