Android.mk 文件语法规范

来源:互联网 发布:360自动优化工具 编辑:程序博客网 时间:2024/05/16 10:10

转载:http://www.cnblogs.com/likwo/archive/2012/08/08/2629075.html

  • LOCAL_PATH := $(call my-dir)
一个 Android.mk 文件,首先必须定义好 LOCAL_PATH 变量。它用于在开发树中查找源文件。宏函数 'my-dir' 由编译系统提供,用于返回当前路径(即包含 Android.mk 文件的目录)

  • include $(CLEAR_VARS)
CLEAR_VARS 由编译系统提供,指定让 GNU makefile 为你清除许多 LOCAL_XXX 变量(如 LOCAL_MODULE、LOCAL_SRC_FILES 等等),除了 LOCAL_PATH

  • LOCAL_MODULE 变量
LOCAL_MODULE 变量必须定义,以标识在 Android.mk 文件中描述的每个模块,名称必须是唯一的,而且不包含空格。编译系统会自动产生合适的前缀和后缀

可以在一个 Android.mk 文件中定义多个编译模块,每个编译模块都是以 include $(CLEAR_VARS) 开始,以 include $(BUILD_XXX) 结束

  • LOCAL_SRC_FILES 变量
LOCAL_SRC_FILES 变量必须包含将要编译打包进模块中的 C 或 C++ 源代码文件。不用在这里列出头文件和包含文件,编译系统会自动找出依赖型的文件

包含多个文件的方法:LOCAL_SRC_FILES := xxx.c xxx.c xxx.c 或者 LOCAL_SRC_FILES += xxx.c

  • LOCAL_DEFAULT_CPP_EXTENSION 变量
可选变量,用来指定 C++ 代码文件的扩展名,默认是 .cpp

  • LOCAL_C_INCLUDES 变量
可选变量,路径的可选配置,需要在任何包含 LOCAL_CFLAGS/LOCAL_CPPFLAGS 标志之前

  • LOCAL_CFLAGS 变量
可选变量,编译器选项,在编译 C 代码文件的时候使用

  • LOCAL_CPPFLAGS 变量
可选变量,对 C 和 C++ 代码文件都适用

  • LOCAL_STATIC_LIBRARIES
可选变量,应该链接到这个模块的静态库列表

  • LOCAL_SHARED_LIBRARIES
可选变量,在运行时要依赖的共享库模块列表

  • LOCAL_LDLIBS
可选变量,编译你的模块要使用的附加的链接器选项,可以使用 "-l" 前缀指定库的名字。例如:
LOCAL_LDLIBS := -lz,表示模块在加载时要链接到 /system/lib/libz.so

  • LOCAL_ALLOW_UNDEFINED_SYMBOLS
可选变量,默认情况下编译一个共享库时,任何未定义的引用将导致一个 “未定义的符号” 错误,然而如果需要不启动这项检查,把这个变量设为 "true"

  • LOCAL_ARM_MODE
默认情况下,arm 目标二进制会以 thumb 的形式生成(16位),如果希望模块是以32位指令的形式,可以通过设置这个变量为 arm,LOCAL_ARM_MODE := arm

  • include $(BUILD_XXX)
指定生成可执行文件:BUILD_EXECUTABLE
指定生成静态库:BUILD_STATIC_LIBRARY
指定生成动态库:BUILD_SHARED_LIBRARY

0 0
原创粉丝点击