我们有一个使用OpenGL编写的蛋白质可视化数学/科学应用程序,使用C++编写,并广泛使用GCC 4.4及更高版本中发现的C++0x功能。(它还可以在Windows上使用Microsoft Visual C++ 10进行编译,该编译器支持许多C++0x功能。)
我们想发布一个iPhone/iPad版本,因此我们需要将它从Linux/Windows移植到iPhone上。我们很容易地将类似的程序移植过来——只需添加几个Objective C文件即可完成!但是,由于这里使用了C++0x特性,我们遇到了问题。在OS X上,Xcode使用GCC 4.2.1(来自2007年),该版本早于GCC的C++0x支持。重写所有这些漂亮的C++0x代码以不使用C++0x特性似乎是一个巨大的倒退,而且当向C++0x迈进时,我们真的不想维护一个后移的代码库。
是否有办法使用GCC 4.5(或来自SVN的4.6)针对iPhone和iPhone模拟器?如果有,如何操作?最好能够在Xcode内部完成,因为单击运行/单击调试功能非常有用。只需在Xcode的"C/C++ Compiler Version"框中输入"GCC 4.6",然后一切都能正常工作。
(顺便说一句,截至昨天为止,最新版本的Clang支持一些C++0x功能,但尚不支持lambda表达式,因此对我们来说现在可能还不适用。)