Android.mk详细介绍
来源:互联网 发布:中国的软件行业 编辑:程序博客网 时间:2024/04/30 17:36
Android.mk 的含义
LOCAL_PATH:=$(call my-dir)
LOCAL_PATH 是定义源文件在哪个目录用的。my-dir 是个定义的宏方法,$(call my-dir)就是调用这个叫 my-dir的宏方法,这个方法返回值就是Android.mk文件所在的目录。
LOCAL_PATH := $(call my-dir) 这句用来指定编译的路径。通过调用宏 my-dir ,获取到当前工作的路径。
include $(CLEAR_VARS)
CLEAR_VARS 变量是build system里面的一个变量,这个变量指向了所有的类似 LOCAL_XXX的变量,执行完这一句话, 这个编译系统就把所有的类似
LOCAL_MODULE,LOCAL_SRC_FILES,LOCAL_STATIC_LIBRARIES,...这样的变量都清除掉
但是不会清除掉 LOCAL_PATH;
这个变量是编译系统提供的,用来指明一个 GNU makefile 文件,添加这句,主要的目的是清理所有的 LOCAL_XXX. ,比如 LOCAL_MODULE , LOCAL_LDLIBS 。在每个新模块的开始处,需要添加这句。
类似工具的初始化的操作;
LOCAL_MODULE
LOCAL_MODULE 就是你要生成的库的名字,这个名字要是唯一的。不能有空格。编译后系统会自动在前面加上lib的头, 比如说我们的Hello 就编译成了libHello.so,还有个特点就是如果你起名叫libHello 编译后ndk就不会给你的module名字前加上lib了,但是你最后调用的时候 还是调用Hello这个库。
LOCAL_SRC_FILES = :Hello.c
这个是指定你要编译哪些文件,不需要指定头文件 ,引用哪些依赖, 因为编译器会自动找到这些依赖 自动编译
include $(BUILD_SHARED_LIBRARY) BUILD_STATIC_LIBRARY
这句定义了模块名称,将来编译的库就以此命名。若果编译的是动态库,那么库名就是 libmyjni.so. 需要注意的是,如果你定义 module 为 libmyjni ,那么系统在生成动态库的时候,就不要再为你添加 lib 的前缀了,生成德动态库名字还是 libmyjni.so.
多个文件用逗号隔开;
LOCAL_LDLIBS += -llog
这句指定了需要另外链接的库。我们在代码中,用到了 log 库,所以这里加上这句。
include $(BUILD_SHARED_LIBRARY)
这句说明将来生产的库是共享库,及动态链接库。若需要生产静态库,可以这样写: include $(BUILD_STATIC_LIBRARY) 。动态库的体积比较小,依赖性比价强,扩展名为.so;静态库的体积比较大,扩展名为.a;
.so
编译后生成的库的类型,如果是静态库.a 配置include $(BUILD_STATIC_LIBRARY)
其它参数
LOCAL_CPP_EXTENSION := cc //指定c++文件的扩展名
LOCAL_MODULE := ndkfoo
LOCAL_SRC_FILES := ndkfoo.cc
LOCAL_LDLIBS += -llog -lvmsagent -lmpnet -lmpxml -lH264Android
//指定需要加载一些别的什么库.
- Android.mk详细介绍
- Android.mk详细
- Android.mk详细说明
- Android.mk介绍
- android.mk文件介绍
- Android.mk 介绍
- Android.mk 介绍
- Android.mk介绍
- Android mk文件介绍
- Android.mk文件介绍
- Android.mk介绍
- Android.mk 介绍
- Android.mk编写介绍
- android.mk 介绍
- Android.mk 介绍
- Android.mk 用法介绍
- Android.mk 用法介绍
- Android.mk 语法介绍
- 设计模式 -- 模板方法模式 TemplateMethod
- poj 1064 Cable master 二分长度
- java 静态变量和静态块底层原理
- eclipse常用插件在线安装地址或下载地址
- ZIP BOMB
- Android.mk详细介绍
- alsa lib中ttable相关学习
- PHP的WebServices实现
- 简单的Linux脚本程序
- springmvc
- 查找文件中包含某个字符串的行并将所有满足条件行输出到新文件使用命令
- 几个网址
- Red/System编译器实现分析(1)
- [读PAPER]Online Unsupervised Feature Learning for Visual Tracking