Android.mk学习笔记

这篇博客详细介绍了Android.mk文件在Android源码编译中的作用。首先,`LOCAL_PATH := $(call my-dir)`用于设定模块路径。然后,`LOCAL_MODULE`定义了模块的全局唯一名称。`include $(CLEAR_VARS)`用于在编译每个模块前清除环境变量,而`include $(BUILD_X)`则指定模块的编译类型,如动态库或静态库。通过实例展示了错误配置导致的编译问题。
摘要由CSDN通过智能技术生成

LOCAL_PATH := $(call my-dir)

这条语句出现在Android.mk最开始。由于我们将所有源码等文件都存在了当前目录或子目录,因此调用my-dir这个函数来告知编译器所编译的模块在mk所在当前目录下。

LOCAL_MODULE

这个参数是模块的名称,要求全局唯一并且不能带空格。
可以简单试验一下,找到任意一个模块的目录,例如device/generic/goldfish,这是虚拟机设备路径,新建一个文件夹mymodule,将其他模块(如gps)的Android.mk拷贝过来。
接下来在源码目录执行make,由于我们没有修改Android.mk文件的内容,导致出现了两个gps模块,因此编译报错:

including ./device/generic/goldfish/mymodule/Android.mk ...
build/core/base_rules.mk:157: *** device/generic/goldfish/mymodule: MODULE.TARGET.SHARED_LIBRARIES.gps.goldfish already defined by device/generic/goldfish/gps.  Stop.

####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值