2012-02-27 49 views
2

我遇到了一個非常奇怪的錯誤或暫時喪失了大腦功能。添加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 

回答

1

你需要一個Objective-C++文件對於這一點,因爲Box2D的是用C++編寫,因此不會在Objective-C編譯盒子外面。幸運的是,它只是將你的文件從myClass.m重命名爲myClass.mm

1

快速谷歌翻了起來the header in question。它看起來像C++代碼。這意味着如果你想要的東西工作,你需要編譯爲Objective-C++。可能你現在沒有這樣做 - 最簡單的方法是將文件的擴展名更改爲.mm

相關問題