android编译系统的makefile文件Android.mk写法如下
(1)Android.mk文件首先需要指定LOCAL_PATH变量,用于查找源文件。由于一般情况下Android.mk和需要编译的源文件在同一
目录下,所以定义成如下形式:LOCAL_PATH:=$(call my-dir)
(2)Android.mk中可以定义多个编译模块,每个编译模块都是以include $(CLEAR_VARS)开始,以include $(BUILD_XXX)结束。
include $(CLEAR_VARS)CLEAR_VARS由编译系统提供,指定让GNU MAKEFILE为你清除除LOCAL_PATH以外的所有
LOCAL_XXX变量,如LOCAL_MODULE,LOCAL_SRC_FILES,LOCAL_SHARED_LIBRARIES,
LOCAL_STATIC_LIBRARIES等。
include $(CLEAR_VARS)的作用是清除一些变量的值,但是LOCAL_PATH除外。
LOCAL_MODULE是用来指定当前待编译模块的名称
LOCAL_SRC_FILES是用来指定参与编译的源代码文件
LOCAL_C_INCLUDES 是头文件路径
include $(BUILD_SHARED_LIBRARY)是用来指示将当前模块编译为共享库,前缀为lib,后缀为.so
include $(BUILD_STATIC_LIBRARY)表示编译成静态库
include $(BUILD_SHARED_LIBRARY)表示编译成动态库。
include $(BUILD_EXECUTABLE)表示编译成可执行程序
简单的例子:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
LOCAL_MODULE := sipstack
LOCAL_SRC_FILES := src/test.c \
src/fun.c
include $(BUILD_SHARED_LIBRARY)
本文介绍了 Android.mk 文件的基本写法及其在 Android 编译系统中的作用。文章详细解释了 LOCAL_PATH、LOCAL_MODULE、LOCAL_SRC_FILES 等关键变量的用途,并通过一个具体的示例展示了如何使用这些变量来编译共享库。
481

被折叠的 条评论
为什么被折叠?



