I am experiencing either an extremely weird error or a temporary loss of brain function.
I have a box2d / cocos project running in XCode. This all works fine but my code is currently a proof of concept "hack". Stage one of cleaning up the code is creating classes for various objects.
Now, if I create a brand new Objective C class (inherited off NSObject) as below it all compiles fine. As soon as I attempt to import the "Box2D.h" I receive a gazillion errors originating from the box2d library saying it cannot be built. 201 to be precise and it indicates no issues with the class itself. Can anyone shed any light? I have already tried a clean and rebuild as well as restarting XCode.
My super complicated class definition
#import "Box2D.h"
@interface test : NSObject
@end
An example compiler error thrown
Expected '=', ',', ';', 'asm' or '__attribute__' before 'b2Fixture' in /Users/..../libs/Box2D/Dynamics/b2Body.h
You need an Objective-C++ file for this, because Box2D is written in C++ and thus doesn't compile in Objective-C out of the box. Luckily, its just a matter of renaming your file from myClass.m to myClass.mm
ReplyDeleteA quick google turned up the header in question. It looks like C++ code. That means you'll need to compile as Objective-C++ if you want things to work. Probably you're not doing that now - the easy way is to change your file's extention to .mm.
ReplyDelete