APP_:
APP_ALLOW_MISSING_DEPS=true to allow missing dependencies
编译ndk 的时候,ndk本地的版本比要编译的库的ndk版本高,提示有些依赖不在,除了提升版本以外,还可以这么解决:
在android.mk 或者application.mk上加上APP_ALLOW_MISSING_DEPS :=true
APP_STL:android-app中使用的stl库,C++运行库
APP_CPPFLAGS:C++代码的编译选项
APP_ABI:Application Binary Interface(APP_ABI := armeabi armeabi-v7a x86)
APP_OPTIM
这个变量是可选的,用来定义“release”或"debug"。在编译您的应用程序模块的时候,可以用来改变优先级。
LOCAL_:
LOCAL_PATH:必须位于Android.mk文件的最开始。它是用来定位源文件的位置,$(call my-dir)的作用就是返回当前目录的路径
LOCAL_MODULE:以标识你在 Android.mk 文件中描述的每个模块,so库的生成
LOCAL_SRC_FILES:包含将要编译打包进模块中的 C 或 C++源代码文件
LOCAL_CPPFLAGS:仅定义额外的C++编译器的参数,适用于C++/C
LOCAL_CFLAGS:编译C文件用到的编译器参数
LOCAL_LDFLAGS:这个编译变量传递给链接器一个一些额外的参数,比如想传递而外的库和库路径给ld,如果是非系统的第三方库,貌似只能用LOCAL_LDFLAGS方式。
LOCAL_C_INCLUDES:头文件搜索路径,默认在LOCAL_PATH目录
LOCAL_CPP_EXTENSION:用来指定c++的扩展名,LOCAL_CPP_EXTENSION :=.cXX
LOCAL_STATIC_LIBRARIES:表示模块需要使用哪些静态库,以便在编译时候链接
LOCAL_SHARED_LIBRARIES:表示模块需要使用哪些动态库,以便在编译时候链接,如果链接库调用其他动态库,需要重新链接或者添加到Application.mk中。
LOCAL_LDLIBS:编译模块时附加的链接器选项,即额外链接的库
LOCAL_MODULE_PATH:指定的目标安装路径
LOCAL_ARM_MODE:
GNU make 系统变量:
CLEAR_VARS 由编译系统提供,所有的编译文件都在同一个 GNU MAKE 执行环境中,所有的变量都是全局的。所以我们需要先清空这些变量(LOCAL_PATH除外),在开始一个新模块之前包含这个脚本。
BUILD_SHARED_LIBRARY:编译系统提供的变量,根据LOCAL_***中的值编译生成动态库
BUILD_STATIC_LIBRARY:编译系统提供的变量,根据LOCAL_***中的值编译生成动态库
TARGET_ARCH:目标cpu名称,x86,arm
TARGET_ARCH_ABI:
TARGET_ABI:
TARGET_PLATFORM:目标android平台的名字