Application.mk常用变量

APP_ABI

说明:指定目标架构,默认为armeabi。

# 指定一个架构
APP_ABI := armeabi

# 指定支持多个架构,用空格隔开
APP_ABI := armeabi armeabi-v7a

# 支持所有架构
APP_ABI := all

相关变量:
NDK_ALL_ABIS:包含了所有支持的ABI。

NDK_TOOLCHAIN_VERSION

说明:指定GCC编译器版本,默认为4.8。

# 指定编译器版本为4.9
NDK_TOOLCHAIN_VERSION := 4.9

相关变量:
NDK_ALL_TOOLCHAINS:所有的工具链名称
TOOLCHAIN_VERSION:当前编译器版本。如4.9
TOOLCHAIN_NAME:当前工具链名称,如arm-linux-androideabi-4.9

APP_PLATFORM

说明:指定目标Android API版本,默认为android-3(Android 1.5)。

# 指定Android API为19(Android 4.4.2)
APP_PLATFORM := android-19

相关变量:
TARGET_PLATFORM:值同APP_PLATFORM一样
APP_PLATFORM_LEVEL:当前API版本。如19
NDK_MAX_PLATFORM_LEVEL:支持到最高的API版本
NDK_ALL_PLATFORMS:支持的所有API版本

APP_STL

说明:指定要使用的stl库,默认为system。

# 使用gnustl(动态库)
APP_STL := gnustl_shared

# 使用stlport(静态库)
APP_STL := stlport_static

相关变量:
NDK_STL_LIST:所有支持的stl库
APP_CPPFLAGS:C++代码的编译选项

APP_MODULES

说明:需要编译的模块名称集合,模块名称由Android.mk文件中的LOCAL_MODULE指出。

# 假设Android.mk文件有三个模块
include $(CLEAR_VARS)
LOCAL_MODULE := module1
include $(BUILD_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := module2
include $(BUILD_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := module3
include $(BUILD_SHARED_LIBRARY)

# Application.mk
APP_MODULES := module1 module2

上面的例子指示只编译module1和module2,不编译module3。

APP_OPTIM

说明:优化选项,默认值为release。可选值为debug和release。release模式下文件体积更小,debug模式下提供更多的调试信息。

相关变量:
NDK_DEBUG:NDK编译选项,为1时打开debug模式,debug模式会生成gdbserver等文件。

你可能感兴趣的:(Application.mk常用变量)