
目录
android.mk Android.mk 文件所含内容的基本信息 变量和宏 模块描述变量 application.mkndk-build
认识Android.mk和Application.mk
androID.mk AndroID.mk 文件所含内容的基本信息LOCAL_PATH :=$(call my-dir) //此变量表示源文件在开发树中的位置include $(CLEAR_VARS) //CLEAR_VARS 变量指向一个特殊的 GNU Makefile,后者会清除许多 LOCAL_XXX 变量LOCAL_MODLE := CKAppSecret //LOCAL_MODulE 变量存储您要编译的模块的名称LOCAL_SRC_fileS := main.cpp //LOCAL_SRC_fileS 变量必须包含要编译到模块中的 C 和/或 C++ 源文件列表include $(BUILD_SHARED_liBRARY) /* 此变量指向的编译脚本用于收集您在 LOCAL_XXX 变量中提供的模块的所有相关信息,以及确定如何根据您列出的源文件编译目标共享库。请注意,使用此脚本要求您至少已经为 LOCAL_MODulE 和 LOCAL_SRC_fileS 赋值。共享库变量会导致编译系统生成扩展名为 .so 的库文件。*/变量和宏 NDK 定义的 include 变量 CLEAR_VARS
此变量指向的编译脚本用于取消定义下文“开发者定义的变量”部分中列出的几乎所有 LOCAL_XXX 变量。在描述新模块之前,请使用此变量来包含此脚本
BUILD_SHARED_liBRARY
此变量指向的编译脚本用于收集您在 LOCAL_XXX 变量中提供的模块的所有相关信息,以及确定如何根据您列出的源文件编译目标共享库。
BUILD_STATIC_liBRARY....
PREBUILT_SHARED_liBRARY
这里的 LOCAL_SRC_fileS 值不能是源文件,而必须是指向预编译共享库的一个路径,例如 foo/libfoo.so
编译系统会根据 APP_ABI 变量所指定的每个 ABI 解析 AndroID.mk 一次
TARGET_ARCH
编译系统解析此 AndroID.mk 文件时面向的 cpu 系列。此变量是 arm、arm64、x86 或 x86_64 之一。
TARGET_PLATFORM
编译系统解析此 AndroID.mk 文件时面向的 AndroID API 级别编号。例如,AndroID 5.1 系统映像对应于 AndroID API 级别 22:androID-22。
TARGET_ARCH_ABI
编译系统解析此 AndroID.mk 文件时面向的 ABI。
TARGET_ABI
目标 AndroIDAPI 级别与 ABI 的连接。
本部分中的变量会向编译系统描述您的模块。每个模块描述都应遵守以下基本流程:
使用 CLEAR_VARS 变量初始化或取消定义与模块相关的变量。
为用于描述模块的变量赋值。
使用 BUILD_XXX 变量设置 NDK 编译系统,使其将适当的编译脚本用于该模块。
LOCAL_PATH
此变量用于指定当前文件的路径。必须在 AndroID.mk 文件开头定义此变量。
LOCAL_MODulE
此变量用于存储模块名称。必须在包含任何脚本(CLEAR_VARS 的脚本除外)之前定义此变量。
LOCAL_MODulE_filename
为生成的模块指定自己选择的名称。
LOCAL_SRC_fileS
此变量包含编译系统生成模块时所用的源文件列表。
建议避免使用绝对文件路径;相对路径可以提高 AndroID.mk 文件的移植性。
LOCAL_CFLAGS
此可选变量用于设置在编译 C 和 C++ 源文件时编译系统要传递的编译器标记。这样,您就可以指定额外的宏定义或编译选项。
可以使用 LOCAL_CPPFLAGS 仅为 C++ 指定标记。
LOCAL_LDliBS
此变量列出了在编译共享库或可执行文件时使用的额外链接器标记。
利用此变量,您可使用 -l 前缀传递特定系统库的名称
创建一个配置目标 ABI、工具链、发布/调试模式和 STL 的 Application.mk 文件。
对于其中任何您未指明的项,将分别使用以下默认值:
ABI:所有非弃用的 ABI
工具链:Clang
模式:发布
STL:系统
| 指令集 | 值 |
|---|---|
| 32 位 ARMv7 | APP_ABI := armeabi-v7a |
| 64 位 ARMv8 (AArch64) | APP_ABI := arm64-v8a |
| x86 | APP_ABI := x86 |
| x86-64 | APP_ABI := x86_64 |
| 所有支持的 ABI(默认) | APP_ABI := all |
APP_PLATFORMAPP_PLATFORM
会声明编译此应用所面向的AndroID API 级别,并对应于应用的 minSdkVersion。
如果未指定,ndk-build 将以 NDK 支持的最低 API 级别为目标。最新 NDK 支持的最低 API 级别总是足够低,可以支持几乎所有使用中的设备。
APP_OPTIM
该变量可以设置为release和deBUG来改变生成的二进制文件的优化级别,默认为release模式。
发布模式会启用优化,并可能生成无法与调试程序一起使用的二进制文件。
调试模式会停用优化,以便可以使用调试程序。
总结以上是内存溢出为你收集整理的Android.mk和Application.mk基本内容全部内容,希望文章能够帮你解决Android.mk和Application.mk基本内容所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)