我有一个已经工作的 Xcode 项目,在其中的一个视图中包含了 Cocos2d。现在我需要添加 Box2d。我试着将 Box2D 文件夹拖到我的 cocos2d-2.x-ARC-iOS 文件夹的 libs 目录中,并将其添加到该目标,但当我编译时出现以下错误:
(in b2BroadPhase.cpp)
'Box2D/Collision/b2BroadPhase.h' file not found
我确定这只是我将要遇到的许多错误中的第一个。我错过了哪一步,以便在我的项目中编译所有Box2d文件?
所有Box2d文件都列在cocos2d-library目标的Compile Sources中。
为什么这样做很困难?为什么它不像其他库那样工作?
并且-我是否必须将我的项目中的每个.m重命名为.mm?这几乎是不可能的,因为这是一个包含许多文件的大型XCode项目。我只是想在一个视图中使用Box2d。
针对LearnCocos2D的答案给出的额外信息-
我的文件夹结构(在Finder中)如下:
根目录= MyProject.xcodeproj,MyProject文件夹,cocos2d-2.x-ARC-iOS文件夹 在cocos2d-2.x-ARC-iOS文件夹中,有一个名为libs的文件夹。里面有Box2D文件夹,以及Cocos2d,CocosDenshion等。
在XCode中,我有一个PROJECT(MyProject) 和两个TARGETS(cocos2d-library,MyProject) 对于PROJECT和TARGETS,都有“Header Search Paths”。我应该设置哪一个?它应该是递归还是非递归?当我将Box2D文件夹拖入XCode时,我应该将其设置为哪个目标?
我的项目文件位于/Users/me/Dropbox/iOS/MyProject。那么我为Header Search Path输入什么?/Users/me/Dropbox/iOS/MyProject/cocos2d-2.x-ARC-iOS/libs似乎不起作用。
另一个更新-/Users/me/Dropbox/iOS/MyProject/cocos2d-2.x-ARC-iOS/libs作为MyProject TARGET中的Header Search Path似乎让我克服了Box2D错误。然后,我遇到了“cassert”文件未找到的错误。通过像您建议的更改视图控制器、它的父级和AppDelegate为“Objective-C++ Source”文件类型来解决它。现在…
现在我有一堆NSObjCRuntime.h NSZone.h、NSObject(预期未限定ID,未知类型名称'NSString'等)的错误。因此,看来您要么创建一个具有Box2d/Cocos2d的应用程序,要么创建一个具有UIKit应用程序。试图同时拥有两者是一场完全的噩梦。