我们在使用 cocos2dx 进行跨平台开发的时候,一种情景是我们在 mac 上利用 xcode 的开发环境进行开发。当我们把代码放到 android ndk 上,想编译成 android 应用的时候,有时候会出现编译错误,这主要是我们在 mac 上的时候,在 C++ 代码里使用了过多的 C++11 功能,比如像 auto 之类。
xcode 默认是使用 clang 的编译器,而 NDK 上现在还是默认 gcc 的编译器。
我们从 Android NDK 的 revision 8e 的发布声明上可以看到:
引用
Added Clang 3.2 compiler. GCC 4.6 is still the default. For information on using the Clang compiler, see CHANGES.HTML.
那么我们应该怎么来用 clang 来编译我们的游戏代码呢,这样就不需要手动将 auto 修改过来了。
答案也很简单,只需要在你调用 ./build_native.sh 的前面输入这个 export NDK_TOOLCHAIN_VERSION=clang3.2 就行了。