我正在为基于 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/