【发布时间】:2013-03-02 20:43:46
【问题描述】:
我有一个工作 Xcode 项目,其中一个视图中包含 Cocos2d。我现在需要添加 Box2d。我尝试将 Box2D 文件夹拖到我的 cocos2d-2.x-ARC-iOS 文件夹的 libs 目录中并添加到该目标,但我在编译时得到了这个:
(in b2BroadPhase.cpp)
'Box2D/Collision/b2BroadPhase.h' file not found
我确信这只是我将遇到的许多错误中的第一个。在我的项目中编译所有 Box2d 文件时,我缺少哪一步?
所有 box2d 文件都列在 cocos2d-library 目标的编译源中。
为什么这很难做到?为什么它不像其他库那样工作?
并且 - 我是否必须将项目中的每个 .m 重命名为 .mm?这几乎是不可能的,因为这是一个包含许多文件的大型 xcode 项目。我只是想在一个视图中使用 Box2d。
针对LearnCocos2D给出的答案的补充信息-
我的文件夹结构(在 Finder 中)如下所示:
Root = MyProject.xcodeproj、MyProject 文件夹、cocos2d-2.x-ARC-iOS 文件夹 在 cocos2d-2.x-ARC-iOS 文件夹中有一个名为 libs 的文件夹。在该文件夹中,我有 Box2D 文件夹,以及 Cocos2d、CocosDenshion 等。
在 XCode 中我有一个项目 (MyProject) 和 2 个目标(cocos2d-library,MyProject) PROJECT 和 TARGETS 都有“标题搜索路径”。我设置哪一个?它应该是递归的还是非递归的?当我将 Box2D 文件夹拖到 Xcode 中时,我将它设置为哪个目标?
我的项目文件位于 /Users/me/Dropbox/iOS/MyProject。那么我究竟为标题搜索路径输入了什么? /Users/me/Dropbox/iOS/MyProject/cocos2d-2.x-ARC-iOS/libs 似乎不起作用。
另一个更新 - /Users/me/Dropbox/iOS/MyProject/cocos2d-2.x-ARC-iOS/libs 作为 MyProject TARGET 中的标题搜索路径似乎让我克服了 Box2D 错误。然后我有一个'cassert'文件未找到错误。通过将视图控制器、它的父级和 AppDelegate 更改为您建议的“Objective-C++ Source”文件类型来解决这个问题。现在...
现在我在 NSObjCRuntime.h NSZone.h 和 NSObject 中有一连串错误(预期的不合格 ID、未知类型名称“NSString”等)。所以看起来你要么使用 Box2d/Cocos2d 创建一个应用程序,要么创建一个 UIKit 应用程序。试图同时拥有这两者是一场彻头彻尾的噩梦。
【问题讨论】:
标签: xcode cocos2d-iphone box2d box2d-iphone