我有一个工作 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 中,我有一个 PROJECT (MyProject) 和 2 个 TARGETS (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 应用程序。试图两者兼得是一场彻头彻尾的噩梦。