添加box2d标头会导致编译器错误

时间:2012-02-27 23:37:27

标签: iphone objective-c xcode box2d

我遇到了极其奇怪的错误或暂时丧失大脑功能。

我有一个在XCode中运行的box2d / cocos项目。这一切都很好但我的代码目前是概念证明“黑客”。清理代码的第一阶段是为各种对象创建类。

现在,如果我创建一个全新的Objective C类(从NSObject继承),如下所示,所有编译都很好。一旦我尝试导入“Box2D.h”,我就会收到来自box2d库的大量错误,说它无法构建。 201确切地说,它表明班级本身没有问题。谁能摆脱任何光明?我已经尝试过清理和重建以及重新启动XCode。

我超级复杂的课程定义

#import "Box2D.h"

@interface test : NSObject

@end

抛出示例编译器错误

Expected '=', ',', ';', 'asm' or '__attribute__' before 'b2Fixture' in /Users/..../libs/Box2D/Dynamics/b2Body.h

2 个答案:

答案 0 :(得分:1)

你需要一个Objective-C++文件,因为Box2D是用C ++编写的,所以不能在Objective-C开箱即用。幸运的是,只需将文件从myClass.m重命名为myClass.mm

即可

答案 1 :(得分:1)

快速谷歌出现the header in question。它看起来像C ++代码。这意味着如果你想要的话,你需要编译为Objective-C ++。可能你现在不这样做 - 简单的方法是将文件的扩展名更改为.mm