【问题标题】:How do I tell Android Studio to use GCC 4.9 with CMake?如何告诉 Android Studio 将 GCC 4.9 与 CMake 一起使用?
【发布时间】:2017-03-07 16:22:34
【问题描述】:

我正在使用带有 Android Studio 2.2 的 NDK r12。我需要 CMake 来使用 GCC 4.9 而不是 Clang 来构建我们的代码库,但是即使我提供以下内容,它仍然使用 clang:

android {
    compileSdkVersion 17
    buildToolsVersion "25.0.0"

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 17

        externalNativeBuild {
            cmake {
                arguments '-DBUILD_TESTING=OFF -DANDROID_TOOLCHAIN=gcc-4.9'
                cppFlags "-std=c++14 -fexceptions -frtti"
            }
        }
    }
}

我也尝试过-DANDROID_TOOLCHAIN=gcc,但这也不起作用。如何让 CMake 使用 GCC ARM 工具链?

【问题讨论】:

    标签: android c++ gradle android-ndk cmake


    【解决方案1】:

    arguments 字符串拆分为每个参数一个字符串:

    arguments '-DBUILD_TESTING=OFF','-DANDROID_TOOLCHAIN=gcc'
    

    我不知道是否可以明确指定 GCC 的 4.9 版本(“gcc-4.9”不起作用)。但是,无论如何这都是多余的,因为 GCC 4.8 在 NDK r11 中被删除,所以 GCC 4.9 现在是 NDK 中包含的唯一 GCC 版本,因此ANDROID_TOOLCHAIN=gcc 隐含意味着 GCC 4.9。

    【讨论】:

    • 哇,所以这必须与cppFlags 中的选项列表不同?到底是谁在设计这些东西……
    • 好吧,cppFlags is also supposed to be 一个 List<String>。也许它仍然只适用于一个带有一堆标志的长字符串,但它似乎不适用于arguments
    【解决方案2】:

    现在看来不可能了,GCC 工具链也被放弃了。

    我在尝试设置 ANDROID_TOOLCHAIN=gcc 时收到此错误:

    D:/Android/ndk-bundle/build/cmake/android.toolchain.cmake:169 处的 CMake 错误(消息): 不再支持 GCC。看 https://android.googlesource.com/platform/ndk/+/master/docs/ClangMigration.md

    【讨论】:

      猜你喜欢
      • 2018-06-08
      • 2021-09-30
      • 2019-09-27
      • 2020-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多