【问题标题】:Android NDK release flagAndroid NDK 发布标志
【发布时间】:2018-09-19 06:43:52
【问题描述】:

我正在使用 Android NDK(与 CMake 和 gradle 集成)。 目前 C++ Release-Flag 是根据 Android Build-Type (Release/Debug) 自动设置的。 我想用发布标志编译/链接本机代码always。如何才能做到这一点?

谢谢

【问题讨论】:

  • 我明白什么是“Android Build Type”,但什么是“C++ Release-Flag”?你的意思是像-DNDEBUG-O3 这样的编译器 标志吗?
  • 由于 NDK 部分是使用 CMake 构建的,您可以将“-DCMAKE_BUILD_TYPE=Release”(或 Debug)传递给 CMake 构建。它会自动设置一些“发布构建标志”

标签: cmake android-ndk


【解决方案1】:

在模块 build.gradle(例如 app/build.gradle)内,在 android {} 块内,添加:

android {
   ...
    externalNativeBuild {
        cmake {
            arguments "-DCMAKE_BUILD_TYPE=Release"
        }
    }
}

这将覆盖默认调试设置,因为参数被附加到默认设置。在 .externalNativeBuild/cmake/debug/$arch 检查生成的构建文件:

  • cmake_build_command.txt
  • android_gradle_build.json

【讨论】:

    【解决方案2】:

    格里的回答对我不起作用。

    如果有人遇到同样的问题,可以尝试使用the official docs中的配置

    例如

    android {
        compileSdkVersion 28
    
        defaultConfig {
            minSdkVersion 21
            targetSdkVersion 28
            versionCode 1
            versionName "1.0"
    
            externalNativeBuild {
                cmake {
                    arguments "-DCMAKE_BUILD_TYPE=Release"
                }
            }
        }
    
        externalNativeBuild {
            cmake {
                path file('../app/src/main/cpp/your-proj/CMakeLists.txt')
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-13
      • 1970-01-01
      • 2011-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多