【发布时间】:2012-04-09 06:07:22
【问题描述】:
到目前为止,我已经完成了以下工作:
- 创建的工作区
- 添加了我的项目
- 添加了 Cocos2d iOS 项目(通过拖放到项目导航器中)。它是我的项目的兄弟姐妹(不是孩子)。
- 在我的项目中,在构建阶段,链接到 libcocos2d.a
- 在我的项目的构建设置中 - 将始终搜索路径设置为 YES
- 创建的源树变量指向包含 cocos2d iOS xcodeproj 文件的文件夹。
- 在我的项目的用户标头路径中,添加了步骤 6 中的源树变量。设置为递归。 8.在项目导航器中,单击 libcocos2d.a 库(显示为红色)。设置位置“相对于构建产品”您在 Xcode 4.3.1 的最右侧窗口中设置。
- 关闭工作区,并在 TextWrangler 中打开 pbxproj 文件。搜索包含 libcocos2d.a 的路径 删除路径,因此该条目仅读取 "libcocos2d.a" 。这是因为编译后的库无论如何都在应用程序的同一构建目录中。
Codesense 和自动完成功能。但这不会编译。当我尝试构建时,会弹出大约 70 个链接器错误,都说如下:
架构 armv7 的未定义符号: “_OBJC_CLASS_$_CCDirector”,引用自: AppDelegate.o 中的 objc-class-ref ViewController.o 中的 objc-class-ref “_kEAGLColorFormatRGB565”,引用自: -[RIAppDelegate applicationDidFinishLaunching:] 在 AppDelegate.o “_OBJC_CLASS_$_CCTexture2D”,引用自: AppDelegate.o 中的 objc-class-ref “_OBJC_CLASS_$_EAGLView”,引用自: AppDelegate.o 中的 objc-class-ref
如果我尝试为模拟器构建,而不是 armv7,它会说 i386 缺少符号。 cocos2d 项目本身可以编译和构建。出现上述错误的是我的项目。
cocos2d 库在我尝试构建后出现在我的应用的构建目录中。
编辑:忘了提。我还为我的项目编辑了方案,使其不并行构建。我还添加了 cocos2d 目标,并将其置于列表的顶部(因此它应该首先构建)。
编辑:澄清一下 - 在对 pbxproj 文件进行了如上所述的更改后,libcocos2d.a 文件不再是红色的。看起来很正常。即使存在链接错误并且构建失败,我的应用程序也已构建。 (它实际上并没有构建,但产品不是“红色”。一个应用程序文件在与 cocos2d 库的生成位置相同的位置创建。
【问题讨论】:
-
除非你真的需要自己做,否则你应该考虑使用 Kobold2D (kobold2d.com)。 Cocos2D 已经设置为静态库,所有其他库也是如此,并且还启用了 ARC。您无需再担心任何这些技术问题。只需安装并开始处理您的项目。
-
感谢 Steffen,但我对使用 Kobol2D 不感兴趣。
标签: ios xcode4 cocos2d-iphone static-libraries static-linking