android.mk自定义变量,Android.mk内的变量定义

Android.mk的变量

一.自定义变量:

在Android.mk文件中自定义变量要遵守以下规则:

1.不能以LOCAL_开头(例如:LOCAL_path);

2.不能以PRIVATE_、NDK_、APP_开头

3.不能全用小写字母(例如:my-dir)

4.建议使用MY_前缀的自定义变量

5.最重要是不能与NDK编译系统保留的变量名一样。

二.NDK编译系统保留的变量及其介绍:

1.CLEAR_VARS

指出了编译脚本中清除了“include$(CLEAR_VARS)”和“include$(BUILD_XXX)”之间的几乎所有的LOCAL_XXX变量,即本模块中不包含的所有的全局变量,在新模块脚本开始时必须包含的变量。通常一个功能模块以“include$(CLEAR_VARS)”开始。

2.BUILD_SHARED_LIBRARY

指出了一个编译脚本收集一个模块中所有的LOCAL_XXX变量的信息,并确定在你的资源文件下如何编译一个动态库。通常一个模块以“include $(BUILD_XXX)”结束。

注意:在这个模块中必须包含LOCAL_MODULE和LOCAL_SRC_FILES变量并赋值。模块将会编译LOCAL_SRC_FILES指定的资源文件生成一个名为“lib$(LOCAL_MODULE).so”文件

3.BUILD_STATIC_LIBRARY

同第2条类似它编译出了一个静态库

指出了一个编译脚本收集一个模块中所有的LOCAL_XXX变量的信息,并确定在你的资源文件下如何编译一个静态库。生成一个名为“include $(LOCAL_MODULE).a”文件

4.PREBUILT_SHARED_LIBRARY

指出了一个编译脚本来编译一个预动态库,在编译预动态库中LOCAL_SRC_FILES必须是一个单一的路径而不是一系列的资源文件。

5.PREBUILT_STATIC_LIBRARY

与第4条类似,它编译成一个预静态库

指出了一个编译脚本来编译一个预静态库,在编译预静态库中LOCAL_SRC_FILES必须是一个单一的路径而不是一系列的资源文件。

注意:PREBUILT_STATIC/SHARED_LIBRARY与STATIC/SHARED_LIBRARY的区别在于:

1.预动/静态库中,LOCAL_SRC_FILES指定的是一个单一的路径,在此目录下可以放编好的动/静态库,在编译系统时可直接进行编译,也即是说,有此变量不需要源代码,只要有编好的库即可,这样就可以使用所有的不开源的第三方库。

2.可以直接放一个你自己编好的库,这样在编译系统时省略了编译此库的时间,从而提过编译速率。

6.TARGET_ARCH

目标CPU平台的名字,如同在Android开放源码中指定的那样。如果是’arm’,表示要生成ARM兼容的指令,与CPU架构的修订版无关

7.TARGET_PLATFORM

Android.mk解析的时候

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值