Android.mk学习记录
来源:互联网 发布:淘宝上变声器 编辑:程序博客网 时间:2024/05/01 10:31
Android.mk学习记录
ANDROID-MK.html 描述了Android.mk语法来编译用c/c++写的文件用ndk
Android.mk文件用来描绘编译源代码的,具体的:
1、这个文件是一个真正的小的GNU makefile片段,这个文件将会被解析一次或多次
2、这文件语法可以允许你去组织文件模块化‘modules’,每个模块可能是
一个静态的模块,a static library
一个共享模块,a shared library
只有共享库(shared libraries)将会安装到你的应用中,静态的库可以用来生成共享库
可以写多个Android.mk文件,每个是一个模块
3、编译系统自动计算依赖文件
注意:这个语法是非常接近Android平台源码的,这样做的意图是允许使用‘external’库下的源码给系统开发者
1、样例
samples/hello-jni
src 下是java源码
jni下有本地代码 ->jni/hello-jni.c
include $(CLEAR_VARS)
include $(BUILD_SHARED_LIBRARY)
解释:
LOCAL_PATH := $(call my-dir)
一个Android.mk文件必须开始定义一个LOCAL_PATH变量,这个变量用于定位源文件的路径,这个例子,macro(宏)宏函数 my-dir,由编译系统提供,用来返回当前的工作目录
include $(CLEAR_VARS)
CLEAR_VARS有编译系统提供,指向特定的GNU makefile,这将会清楚许多LOCAL_xxx变量,eg,LOCAL_MODULE,LOCAL_SRC_FILES,LOCAL_STATIC_LIBRARIES,etc,还有LOCAL_PATH,这个是必须的,因为所有的编译控制文件被解析在一个单一的GNUmake执行上下文,这里的所有的变量都是全局变量
LOCAL_MODULE := hello-jni
LOCAL_MODULE 每个这样的变量必须唯一且没有空格,注意,系统会自动的加上前缀“lib”和“.so”,所以不必写其他的,这个生成为:libhello-jni.so
LOCAL_SRC_FILES := hello-jni.c
LOCAL_SRC_FILES 包含一系列的c/c++源文件,这些将会编译成一个模块
注意:不要列出头文件和included文件,因为编译系统讲自动计算依赖性
c++的扩展名是cpp
include $(BUILD_SHARED_LIBRARY)
BUILD_SHARED_LIBRARY 这个变量有编译系统提供,用于指向一个GNU Makefile文件,主要用于搜接所有你定义的信息,如:LCOAL_XXX 和include $(CLEAR_VARS),并且决定怎样去编译,生成一个共享库,
BUILD_STATIC_LIBRARY 生成静态库
ANDROID-MK.html 描述了Android.mk语法来编译用c/c++写的文件用ndk
Android.mk文件用来描绘编译源代码的,具体的:
1、这个文件是一个真正的小的GNU makefile片段,这个文件将会被解析一次或多次
2、这文件语法可以允许你去组织文件模块化‘modules’,每个模块可能是
一个静态的模块,a static library
一个共享模块,a shared library
只有共享库(shared libraries)将会安装到你的应用中,静态的库可以用来生成共享库
可以写多个Android.mk文件,每个是一个模块
3、编译系统自动计算依赖文件
注意:这个语法是非常接近Android平台源码的,这样做的意图是允许使用‘external’库下的源码给系统开发者
1、样例
samples/hello-jni
src 下是java源码
jni下有本地代码 ->jni/hello-jni.c
其中jni/Android.mk文件如下:
include $(CLEAR_VARS)
LOCAL_MODULE := hello-jni
include $(BUILD_SHARED_LIBRARY)
解释:
LOCAL_PATH := $(call my-dir)
一个Android.mk文件必须开始定义一个LOCAL_PATH变量,这个变量用于定位源文件的路径,这个例子,macro(宏)宏函数 my-dir,由编译系统提供,用来返回当前的工作目录
include $(CLEAR_VARS)
CLEAR_VARS有编译系统提供,指向特定的GNU makefile,这将会清楚许多LOCAL_xxx变量,eg,LOCAL_MODULE,LOCAL_SRC_FILES,LOCAL_STATIC_LIBRARIES,etc,还有LOCAL_PATH,这个是必须的,因为所有的编译控制文件被解析在一个单一的GNUmake执行上下文,这里的所有的变量都是全局变量
LOCAL_MODULE := hello-jni
LOCAL_MODULE 每个这样的变量必须唯一且没有空格,注意,系统会自动的加上前缀“lib”和“.so”,所以不必写其他的,这个生成为:libhello-jni.so
LOCAL_SRC_FILES := hello-jni.c
LOCAL_SRC_FILES 包含一系列的c/c++源文件,这些将会编译成一个模块
注意:不要列出头文件和included文件,因为编译系统讲自动计算依赖性
c++的扩展名是cpp
include $(BUILD_SHARED_LIBRARY)
BUILD_SHARED_LIBRARY 这个变量有编译系统提供,用于指向一个GNU Makefile文件,主要用于搜接所有你定义的信息,如:LCOAL_XXX 和include $(CLEAR_VARS),并且决定怎样去编译,生成一个共享库,
BUILD_STATIC_LIBRARY 生成静态库
- Android.mk学习记录
- Android.mk学习记录
- [学习记录] Android.mk分析
- 关于android.mk学习记录
- android.mk 解析记录
- Android.mk代码记录
- [Android]Android.mk学习
- Android.mk学习
- Android.mk学习笔记
- Android.mk学习资料
- 学习写Android.mk
- Android.mk学习笔记
- Android.mk学习笔记
- Android.mk学习笔记
- [cocos2dx]Android.mk学习
- Android.mk学习
- NDK学习笔记:Android.mk
- Android.mk文件学习笔记
- 高版本Opencv内置的videoInput库的使用方法
- jsp中读取web.xml中配置的参数
- 一套验证码验证系统的练习 (Servlet + Filter + JSP)
- 关于servlet 和 JSP 中文乱码的问题
- Linux系统监控工具之vmstat详解
- Android.mk学习记录
- 7.5.5:配置合作者Bean
- ubuntu安装
- TCP/IP协议简介
- 管理员必备的20个Linux系统监控工具
- 通过SQL语句获得MYSQL的安装路径
- http://woody-420420.iteye.com/blog/170683
- PowerPC汇编指令集
- poluoluo.