2012-09-21 133 views
0

我正在使用Xcode中的OpenGLES - 它主要是用在iOS上,但我希望只使OpenGLES部分C++,獨立於它不會'使用ObjectiveC。然而,OpenGLES包括似乎導入需要Objective-C(Availability.h)的東西,所以CPP文件不能正確編譯,因爲我從NSObjCRuntime.h中得到有關NSString的錯誤。OpenGLES頭文件包括Availability.h防止CPP文件編譯

我理解他們,但我想知道別人如何解決這個問題。我希望能夠擁有帶有CPP擴展名的C++文件。我應該關注Xcode項目中關於如何處理CPP文件的設置?

感謝

回答

0

的Xcode默認情況下應把cpp文件作爲C++。確保你沒有一個特殊的僅限於Objective-C的定義,如__OBJC__,在某處手動定義。至於Availability.h具體來說,它不需要Objective-C(它只是預處理器的東西),所以這個問題大概會在其他地方。

絕對可以使用OpenGL從.cpp文件編譯爲C++,就像我在iOS項目中做的那樣。

0

也有可能您有一個包含Objective C頭的前綴頭。如果是這樣的話,你應該用#ifdef __OBJC__包圍它們。

+0

嘿,謝謝 - 我檢查過了,但我對前綴文件非常熟悉 - OBJC檢查已經就位。這似乎是一些CPP文件通過罰款(那些積分較少,並在更深層次導入,通過較少的文件),和其他人鬥爭。 – Cloov

0

我發現它 - QuartzCore.h最終被包含在CATransform3D中。我忘了我打算用替代品取代它。