Android.mk文件的简单解析

首先,Android.mk文件位于项目jni/目录中的子目录中。

1、第一行,必须先定义LOCAL_PATH变量。

LOCAL_PATH : = $(call my-dir)

表示源文件在开发树中的位置。my-dir将返回当前目录(Android.mk文件本身所在的目录)的路径。

2、第二行,申明CLEAR_VARS变量,其值由编译系统提供。

include $(CLEAR_VARS)

CLEAR_VARS变量会指向一个特殊的GNU Makefile,而GNU Makefile会清除许多的LOCAL_XXX的变量,但是,GNU Makefile不会清楚LOCAL_PATH。LOCAL_PATH会保留其值。因为系统在单一 GNU Make 执行环境(其中的所有变量都是全局变量)中解析所有编译控制文件。在描述每个模块之前,必须声明(重新声明)此变量。

3、第三行,排除文件

EXCLUDE_FILES :=  文件目录路径  

排除不需要的,不兼容的,测试的class文件等。

4、下一行,LOCAL_MODULE 变量存储要编译的模块的名称。要求在应用的每个模块中使用一次此变量。

LOCAL_MODULE := hello-jni

每个模块名称必须唯一,且不含任何空格。编译系统在生成最终共享库文件时,会对您分配给 LOCAL_MODULE 的名称自动添加正确的前缀和后缀。例如,上述示例会生成名为 libhello-jni.so 的库。

5、下一行,会列举源文件,以空格分隔多个文件

LOCAL_SRC_FILES := hello-jni.c

LOCAL_SRC_FILES 变量必须包含要编译到模块中的 C 和/或 C++ 源文件列表。

6、最后帮助系统将所有内容连接到一起

include $(BUILD_SHARED_LIBRARY)

BUILD_SHARED_LIBRARY 变量指向一个 GNU Makefile 脚本,该脚本会收集最近 include 以来在 LOCAL_XXX 变量中定义的所有信息。

此脚本确定要编译的内容以及编译方式。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值