Android.mk 的含义

LOCAL_PATH:=$(call my-dir)

LOCAL_PATH是定义源文件在哪个目录用的.

my-dir 是个定义的宏方法, $(call my-dir)就是调用这个叫 my-dir的宏方法,这个方法返回值就是

Android.mk文件所在的目录

include $(CLEAR_VARS)

CLEAR_BARS 变量是build system里面的一个变量

这个变量指向了所有的类似 LOCAL_XXX的变量,

执行完这一句话, 这个编译系统就把 所有的类似

LOCAL_MODULE,_SRC_FILELOCALS,LOCAL_STATIC_LIBRARIES,...这样的变量都清除掉

但是不会清除掉 LOCAL_PATH

LOCAL_MODULE  就是你要生成的库的名字,名字要是唯一的这个.不能有空格.

编译后系统会自动在前面加上lib的头, 比如说我们的Hello 就编译成了libHello.so

还有个特点就是如果你起名叫libHello 编译后ndk就不会给你的module名字前加上lib了

但是你最后调用的时候 还是调用Hello这个库

LOCAL_SRC_FILES = :Hello.c

这个是指定你要编译哪些文件

不需要指定头文件 ,引用哪些依赖, 因为编译器会自动找到这些依赖 自动编译

include $(BUILD_SHARED_LIBRARY)  BUILD_STATIC_LIBRARY

.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

//指定需要加载一些别的什么库.

时间: 2024-11-10 12:01:31

Android.mk 的含义的相关文章

Android.mk中的经常使用语法

Android.mk编译文件是用来向Android NDK描写叙述你的C,C++源码文件的, 今天查了一些经常使用的的语法. 一 概述: 一个Android.mk文件用来向编译系统描写叙述你的源码. 详细来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或很多其它次的build系统. 你能够在每个Android.mk文件里定义一个或多个模块, 你也能够在几个模块中使用同一个源码文件. 二 语法 1 必须定义内容 先看必须定义的内容: LOCAL_PATH := $(call

android.mk android源码编译

http://www.cnblogs.com/chenbin7/archive/2013/01/05/2846863.html Android.mk简单分析 2013-01-05 22:51 by ...平..淡..., 884 阅读, 0 评论, 收藏, 编辑 LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(call all-java-fil

Android.mk中的常用语法

Android.mk编译文件是用来向Android NDK描述你的C,C++源代码文件的, 今天查了一些常用的的语法. 一 概述: 一个Android.mk文件用来向编译系统描述你的源代码. 具体来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或更多次的build系统. 你可以在每一个Android.mk文件中定义一个或多个模块, 你也可以在几个模块中使用同一个源代码文件. 二 语法 1 必须定义内容 先看必须定义的内容: LOCAL_PATH := $(call my-d

编写Android.mk中的LOCAL_SRC_FILES的终极技巧(转)

转自:http://blog.csdn.net/fu_zk/article/details/12836431 问题的引入 在使用NDK编译C/C++项目的过程中,免不了要编写Android.mk文件,其中最重要的就是LOCAL_SRC_FILES源文件列表.考虑有如下源文件分布的情况: cpp文件全部位于android项目下的jni文件夹下,结构如下 jni |---1.cpp |---2.cpp |---Android.mk |---Application.mk |---ndk_test.cp

Android.mk解析

Android.mk文件用来向编译系统描述如何编译你的源代码.在编译整个工程的情况下,系统所找到的所有的Android.mk将会先存入subdir_makefiles变量中,随后一次性一次性include进整个编译文件中. (1)Android.mk文件首先需要指定LOCAL_PATH变量,用于查找源文件. 由于一般情况下Android.mk和需要编译的源文件在同一目录下,所以定义成如下形式: LOCAL_PATH:=$(call my-dir) 上面的语句的意思是将LOCAL_PATH变量定义

Android add prebuilt lib(*.so) to Android.mk

最近移植ffmpeg到android做转码工具,编译出的了libffmpeg.so,调用该库遇到了点小问题,参考下面的文章解决: *************************** 如果你的代码不想随Android开源发布,或者你的代码用到了闭源的第三方库文件,你可以把需要的库动态链接到自己的程序中,修改Android.mk文件,让Android在打包二进制文件时把指定的.so文件放入系统目录下,以供dlopen使用. 下面是一个通用的示例文件,说明了修改Android.mk的方法.增加 M

Android.mk宏定义demo【转】

本文转载自:http://blog.csdn.net/u010164190/article/details/72783963 1.Android.mk  LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := binder_demo_showLOCAL_MODULE_TAGS := optionalLOCAL_SRC_FILES := test.cpp TARGET_BUILD_VARINT := userdebug #宏

Android.mk中引用第3方动态库

Android.mk 文件内容: LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES:= \ testH264VideoStreamer.cpp LOCAL_MODULE := live555_streamLOCAL_MODULE_CLASS := EXECUTABLESLOCAL_STATIC_LIBRARIES := libcutils libc LOC

Android.mk的使用

一个Android.mk file用来向编译系统描述你的源代码.具体来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或多次.你可以在每一个Android.mk file中定义一个或多个模块,你也可以在几个模块中使用同一个源代码文件.编译系统为你处理许多细节问题.例如,你不需要在你的Android.mk中列出头文件和依赖文件.NDK编译系统将会为你自动处理这些问题.这也意味着,在升级NDK后,你应该得到新的toolchain/platform支持,而且不需要改变你的Andro