android-studio - 通过 Cmake 为 Android Studio 调试构建开启编译器优化

标签 android-studio android-ndk cmake

我正在为基于 NDK 的应用程序使用 Android Studio 3.0。 对于 C++ 代码,我使用 CMake as the external builder .

这很好用,我可以创建调试和发布二进制文件。

但是,我想为部分 C++ 代码(物理引擎)启用编译器优化(比如 -O3),不仅针对发布版本,还针对调试版本。

因此,按原样创建大部分调试版本,而不进行优化,但是,我希望在启用编译器优化的情况下构建静态库目标之一。

我该怎么办?

我有一个用于静态库目标的 CMakeLists,它使用 add_subdirectory() 包含在内。顶级 CMakeLists 文件中的指令。

请注意,我在我的应用程序的 build.gradle 文件中指向顶级 CMakeLists,如下所示:

externalNativeBuild {
    cmake {
        path '../../Android/jni/CMakeLists.txt'
    }
}

最佳答案

原来你可以使用target_compile_options() CMakeLists.txt 中的宏,配置规范如下:

target_compile_options(opende PRIVATE
"$<$<CONFIG:RELEASE>:-O3>"
"$<$<CONFIG:DEBUG>:-O3>"
)

此宏添加到现有的编译选项。

关于android-studio - 通过 Cmake 为 Android Studio 调试构建开启编译器优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45316323/

相关文章:

android - 有没有办法阻止我的应用程序在特定时间范围内发送通知?

android-studio - android studio 中的 Kotlin 单元测试

opengl - 如何使用 CMake 在 Ubuntu 中查找和链接 OpenGL(mesa) 包

android - 如何在android studio中打开主题编辑器

android - 使用 Android Studio 的 Gradle 构建错误

android-ndk - Samsung Galaxy S3 上的 native 窗口渲染问题

android - 如何使用 cmake 将 C 库转换为不同的 ABI

android - 在windows上使用android ndkr8通过cygwin编译ffmpeg2

c - 使用 cmake 编译时 Valgrind 不显示行号

c++ - 使用 cmake 在调试构建期间为单个项目指定发布