`

Android NDK 使用 Clang 编译器

阅读更多
我们在使用 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 就行了。
0
0
分享到:
评论

相关推荐

    AndroidStudio中使用NDK编译器笔记

    在Android开发中,NDK(Native Development Kit)是一个重要的工具集,它允许开发者使用C/C++编写部分应用程序,以利用底层硬件性能或者调用特定的系统库。这篇笔记主要介绍了如何在Android Studio中配置和使用NDK...

    android-ndk(android-ndk-r25b-windows.zip)

    7. **LLVM/Clang支持**:NDK引入了LLVM/Clang作为替代GCC的编译器,提供了更好的性能和更现代的C++特性支持。 **使用Android NDK的优点与注意事项:** - **优点:** - 性能提升:原生代码通常比Java更快,尤其是...

    android-ndk(android-ndk-r25b-linux.zip)

    在Android应用开发中,NDK扮演着至关重要的角色,它允许开发者使用原生代码(如C和C++)来编写部分应用,以提高性能、利用硬件加速功能或复用现有的C/C++库。 1. **JNI(Java Native Interface)**: JNI是Java...

    android-ndk-r17c-windows-x86_64.zip

    然而,从NDK r17c的下一版本开始,GCC不再被支持,这意味着开发者必须转向使用LLVM的Clang作为默认的C/C++编译器。Clang提供了更好的错误消息、更现代的C++标准支持和更好的性能,但它可能与一些依赖GCC特性的项目...

    android-ndk-r13b

    #### 四、如何安装和使用Android NDK R13b 1. **下载**:首先需要从官方渠道下载Android NDK R13b版本的压缩包。 2. **解压**:将下载好的压缩包解压到一个合适的目录下。 3. **配置环境变量**:根据操作系统不同,...

    android-ndk-r18b-windows-x86_64.zip

    Android NDK(Native Development Kit)是Google为Android平台开发的一款重要的工具集,它允许开发者使用C和C++语言编写应用程序的底层代码。标题中的“android-ndk-r18b-windows-x86_64.zip”表明这是一个适用于...

    Android NDK基础开发

    Android NDK(Native Development Kit)是Google为Android平台提供的一款工具集,允许开发者在Android应用中使用C++和其它本地语言进行开发。NDK的主要功能是实现原生代码的编译,提供性能优化、硬件加速以及使用...

    android_ndk_linux-r64位下载

    1. **编译工具链**:包括用于构建原生代码的GCC和Clang编译器,以及链接器、汇编器等。 2. **平台SDK**:针对不同Android API级别的头文件和库,允许开发者针对不同Android版本进行编译。 3. **JNI接口**:Java和...

    android-ndk-r16b-windows-x86_64.zip

    它们包括GCC和Clang编译器,分别支持ARM, x86, MIPS等架构。 2. **Android.mk和Application.mk文件**:这些是构建原生代码的配置文件,用来指示NDK如何编译和链接库。 3. **CMake**:自R14版本起,NDK开始支持...

    android-ndk-r13b-windows-x86-64

    2. **prebuilt**:预构建的工具链目录,包含预先编译好的编译器和其他工具,如GCC、Clang等,用于构建针对不同Android平台的目标二进制文件。 3. **toolchains**:工具链目录,提供了各种编译器和链接器,以及它们...

    android编译器 gcc,g++,c/c++编译器和插件

    随着Android NDK(Native Development Kit)的升级,GCC已被更现代的Clang/LLVM编译器取代,但理解GCC对于理解Android的原生开发仍然是非常重要的。 **GCC和G++在Android中的角色** GCC是用于将源代码编译为可执行...

    android NDK 工程源码

    Android NDK 是 Android 开发中的一个重要工具,它允许开发者使用原生C++或者其他系统级语言来编写部分应用代码,从而提升性能、利用多核处理器并实现与硬件更紧密的交互。这个压缩包文件“android NDK 工程源码”很...

    android-ndk-r20-linux-x86_64.zip

    在实际应用中,NDK的使用通常分为几个步骤:配置NDK环境,编写C/C++代码,创建Android.mk或CMakeLists.txt构建文件,使用ndk-build或Android Studio的CMake插件进行编译,最后将生成的.so文件打包进APK。 然而,NDK...

    Android NDK开发环境搭建及案例

    除了基础的本地代码编译,NDK还支持C++11、C++14标准,可以使用CMake或Bazel作为构建系统,还可以配合LLVM的Clang编译器,以及JNI接口的自动绑定生成工具如SWIG。 总结,Android NDK开发环境的搭建涉及到多个步骤,...

    Android NDK Demo

    - 在Android Studio中,也可以利用Clang编译器的调试信息,进行更方便的调试。 8. **性能优化与安全考虑** - NDK开发需关注内存管理,避免内存泄漏和悬挂指针。 - 使用`-fvisibility=hidden`减少符号导出,提高...

    glSatellite-Demo:技术演示的各个方面,包括将OpenGL ES与Android NDK一起使用,自定义消息队列,交互JNI和Java活动,使用NORAD数据库并解析其数据

    描述技术演示的各个方面,包括将OpenGL ES与Android NDK一起使用,自定义消息队列,交互JNI和Java活动,使用NORAD数据库并解析其数据。 特征: 带有clang编译器的C ++ 11 OpenGL ES 2 多点触控可缩放,旋转和移动...

    android-ndk-r16b-windows-x86_64

    对于在 Windows x86_64 系统上使用 Android NDK r16b 的开发者而言,正确的安装和配置步骤非常重要: 1. **下载**:首先,需要从可靠的来源下载 Android NDK r16b。根据描述中的信息,可以尝试从百度网盘提供的链接...

    Android NDK 开发教程及JNI教程.zip

    1. **GCC和Clang编译器**:分别用于旧版本和新版本的Android SDK,用于编译C/C++代码。 2. **Android.mk和CMakeLists.txt**:构建脚本,描述如何构建原生库。 3. **NDK-BUILD**:基于Makefile的构建系统,虽然现在已...

Global site tag (gtag.js) - Google Analytics