Android_mk总结.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android_mk总结

Android.mk的一些规范(红色是我觉得必须加的) 一个Android.mk file用来向编译系统描述你的源代码。具体来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或多次。你可以在每一个Android.mk file中定义一个或多个模块,你也可以在几个模块中使用同一个源代码文件。编译系统为你处理许多细节问题。 1.LOCAL_PATH := $(call my-dir)? ? $(call 目录,目录….) 目录引入操作符,如该目录下有个文件夹名称 src,则可以这样写 $(call src),那么就会得到 src 目录的完整路径Android.mk file首先必须定义好LOCAL_PATH变量。这个变量不会被$(CLEAR_VARS)清除’my-dir’, 由编译系统提供,用于返回当前路径(即包含Android.mk file文件的目录)。 2.include $( CLEAR_VARS) CLEAR_VARS 由编译系统提供(CLEAR_VARS:= $(BUILD_SYSTEM)/clear_vars.mk),在 build/core/config.mk 定义 CLEAR_VARS:= $(BUILD_SYSTEM)/clear_vars.mk 通过include 包含自定义的.mk文件(即是自定义编译规则)或是引用系统其他的.mk文件(系统定义的编译规则)GNU MAKEFILE为你清除许多LOCAL_XXX变量(例如 LOCAL_MODULE, LOCAL_SRC_FILES, LOCAL_STATIC_LIBRARIES, 等等...),除LOCAL_PATH 。这是必要的,因为所有的编译控制文件都在同一个GNU MAKE执行环境中,所有的变量都是全局的。 3.LOCAL_MODULE := LOCAL_MODULE变量必须定义,以标识你在Android.mk文件中描述的每个模块。名称必须是唯一的,而且不包 含任何空格。注意编译系统会自动产生合适的前缀和后缀,换句话说,一个被命名为HcSyncml的共享库模块,将会生成libHcSyncml.so文件。 4.LOCAL_C_INCLUDES := $(LOCAL_PATH)/extra_inc$(LOCAL_PATH)/main_inc LOCAL_C_INCLUDES 中加入所需要包含的头文件路径 LOCAL_STATIC_LIBRARIES := LOCAL_STATIC_LIBRARIES加入所需要链接的静态库(*.a)的名 称 应该链接到这个模块的静态库列表(使用BUILD_STATIC_LIBRARY 生成),这仅仅对共享库模块才有意义。LOCAL_SHARED_LIBRARIES := LOCAL_SHARED_LIBRARIES中加入所需要链接的动态库(*.so)的名称 这个模块在运行时要依赖的共享库模块列表,在链接时需要,在生成文件时嵌入的相应的信息。注意:这不会附加列出的模块到编译图,也就是仍然需要在 Application.mk 中把它们添加到程序要求的模块中。LOCAL_JAVA_LIBRARIES? ???加入jar包 5.LOCAL_SRC_FILES := LOCAL_SRC_FILES中加入源文件路径(需要编译的文件),多个文件用 ‘\’ 隔开. 如果编译目录子目录,采用相对路径,如子目录/文件名。也可以通过$(call 目录),指明编译某目录下所有.c/.cpp/.java/.S/ .aidl文件.追加文件 LOCAL_SRC_FILES += 文件LOCAL_CPP_EXTENSION: 这是一个可选变量,用来指定C++代码文件的扩展名,默认是.cpp,但是你可以改变它LOCAL_PACKAGE_NAME := Java 应用程序的名字用该变量定义6、LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib –llog 表示允许打印Log 7. include $(BUILD_EXECUTABLE) BUILD_EXECUTABLE表示以一个可执行程序的方式进行编译BUILD_STATIC_LIBRARY表示编译一个静态库BUILD_SHARED_LIBRARY表示编译一个BUILD_PREBUILT BUILD_HOST_STATIC_LIBRARY BUILD_HOST_SHARED_LIBRARY BUILD_HOST_EXECUTABLE BUILD_HOST_PREBUILT BUILD_RAW_STATIC_LIBRARY BUILD_RAW_EXECUTABLE BUILD_MULTI_PREBUILT BUILD_JAVA_LIBRARY BUILD_

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档