> 文章列表 > Android.mk文件解析

Android.mk文件解析

Android.mk文件解析

Android.mk文件解析

一、变量解析

1、LOCAL_PATH

  • 当前模块位置
  • my_dir系统提供的宏函数,返回当前文件所在的路径
  • $(call my_dir)调用该函数

2、include $(CLEAR_VARS)

  • 清除除了LOCAL_PATH变量外的LOCAL_XXX变量
  • 所有的编译控制文件都在同一个GNU MAKE执行环境中,所有的编译控制文件由同一个GNU Make解析和执行,其变量是全局的。所以清理后才能避免相互影响。

3、LOCAL_SRC_FILES

  • 需要编译的文件
  • $(all-proto-files-under,src)src目录下所有proto文件

4、LOCAL_MODULE

  • 编译生成的模块名称
  • 必须定义且唯一

5、编译结果

  • include $(BUILD_JAVA_LIBRARY):编译成java库
  • include $(BUILD_PACKAGE):编译成apk
  • include $(BUILD_STATIC_LIBRARY):编译成静态库
  • include $(BUILD_SHARED_LIBRARY):编译成动态库

6、LOCAL_MODULE_TAGS

  • 编译的标签
  • 常见的标签:debug,eng,user,development或optional(默认)

7、LOCAL_C_INCLUDES

  • 设置c/c++所需的头文件路径

8、LOCAL_SHARED_LIBRARIES

  • 当前模块运行时依赖的动态库名