Я использую Android NDK (интегрированный с CMake и gradle). В настоящее время флаг выпуска C++ устанавливается автоматически в зависимости от типа сборки Android (выпуск / отладка). Я бы хотел скомпилировать / связать нативный код всегда с флагом выпуска. Как это может быть сделано?
Спасибо
Поскольку часть NDK построена с помощью CMake, вы можете передать "-DCMAKE_BUILD_TYPE = Release" (или Debug) в сборку CMake. Он автоматически устанавливает некоторые «Флаги сборки выпуска».





Внутри модуля build.gradle (например, app / build.gradle) внутри блока android {} добавьте:
android {
...
externalNativeBuild {
cmake {
arguments "-DCMAKE_BUILD_TYPE=Release"
}
}
}
Это приведет к перезаписи параметров отладки по умолчанию, поскольку аргументы добавляются к параметрам по умолчанию. Проверьте сгенерированные файлы сборки в .externalNativeBuild / cmake / debug / $ arch:
Ответ Джерри мне не подходит.
Если у кого-то есть такая же проблема, вы можете попробовать использовать конфигурацию, показанную в официальные документы
Например
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')
}
}
}
Я понимаю, что такое «Тип сборки Android», но что такое «Флаг выпуска C++»? Вы имеете в виду флаги компилятор, такие как
-DNDEBUGили-O3?