Application.mk中定义一些全局(整个项目)的配置,配置相对较少,比较简单。
下面是基本配置:
1 | # 确定CPU架构 |
【1】APP_OPTIM
1 | 将此可选变量定义为 `release` 或 `debug`。 |
【2】APP_DEBUG
可以在AS中手动设置 Build Variants
改变的值。
1 | 如果选择 debug,APP_DEBUG等于true; |
【2】APP_CFLAGS
1 | 为任何模块编译任何 C 或 C++ 源代码时传递到编译器的一组 C 编译器标志 |
【3】APP_CPPFLAGS
1 | 构建 C++ 源文件时传递到编译器的一组 C++ 编译器标志。 |
【4】APP_ABI
1 | 需要生成的cpu架构。 |
ABI(横 so)/CPU(竖 手机) | armeabi | armeabi-v7a | arm64-v8a | x86 | x86_64 |
---|---|---|---|---|---|
ARMV5 | 支持 | ||||
ARMV7 | 支持 | 支持 | |||
ARMV8 | 支持 | 支持 | 支持 | ||
X86 | 支持 | ||||
X86_64 | 支持 | 支持 |
【5】APP_PLATFORM
1 | 与app最小SDK版本对应即可。 |
【6】APP_STL
1 | 默认情况下,NDK 构建系统为 Android 系统提供的最小 C++ 运行时库 (`system/lib/libstdc++.so`) |
名称 | 说明> | 功能 |
---|---|---|
libstdc++(默认) | 默认最小系统 C++ 运行时库。 | 不适用 |
gabi++_static | GAbi++ 运行时(静态)。 | C++ 异常和 RTTI |
gabi++_shared | GAbi++ 运行时(共享)。 | C++ 异常和 RTTI |
stlport_static | STLport 运行时(静态)。 | C++ 异常和 RTTI;标准库 |
stlport_shared | STLport 运行时(共享)。 | C++ 异常和 RTTI;标准库 |
gnustl_static | GNU STL(静态)。 | C++ 异常和 RTTI;标准库 |
gnustl_shared | GNU STL(共享)。 | C++ 异常和 RTTI;标准库 |
c++_static | LLVM libc++ 运行时(静态)。 | C++ 异常和 RTTI;标准库 |
c++_shared | LLVM libc++ 运行时(共享)。 | C++ 异常和 RTTI;标准库 |
一般情况下,如果设置的配置不符合当前版本,会有明显的错误提示:
【7】在 build.gradle
中配置全局参数
全局参数不仅可以在Application.mk中配置,还可以在 build.gradle
中配置。
1 | externalNativeBuild { |
多个配置以逗号隔开。