AndroidBuild2—make命令

  • make:

    作用:

 

      是用来组织应用程序编译过程的基本工具 

 

 

      解释和执行makefile 中的规则和指令

      根据规则建立依赖关系,建立编译过程的描述数据库

      通过比较目标和依赖的修改时间确定更新目标

    解决的问题:

      编译的自动化

      提高了编译效率

      将大型的开发项目分解成为多个易于管理的模块,结合makefile简洁明快地理顺各个源文件之间纷繁复杂的相互关系

 

  • makefile:

 

    是一种命名为Makefile的特殊文件,描述了整个工程的编译、链接的规则:

          源文件、头文件集合
        以何种方式编译源代码和链接程序
        文件编译顺序及依赖关系
        如何更新目标文件

    makefile指定规则和指令,由make工具解释执行,共同完成程序的编译过程。

 

  • make命令:

    make [ -f makefile ] [ options ] ... [ targets ] ...

    make   –f hello.mk   CFLAGS=-g      hello

    -f   指定读入的makefile文件,如果不指定,make会按照GNUmakefile、makefile、Makefile的顺序搜索当前目录下的makefile文件

    -i   忽略命令执行返回的出错信息。

    -s   沉默模式,在执行之前不输出相应的命令行信息。

    -r   禁止使用build-in规则。

    -n     非执行模式,输出所有执行命令,但并不执行。

    -t   更新目标文件。

    -q   make操作将根据目标文件是否已经更新返回"0"或非"0"的状态信息。

    -p   输出所有宏定义和目标文件描述。

    -d   Debug模式,输出有关文件和检测时间的详细信息。

    -c dir 在读取 makefile 之前改变到指定的目录dir。

    -I dir  包含其他 makefile文件时,利用该选项指定搜索目录。

    -w   在处理 makefile 之前和之后,都显示工作目录。

    -h   help文挡,显示所有的make选项。

  • make执行过程   
    执行步骤:
      读入所有的makefile
      读入被include的其它makefile
      初始化文件中的变量
      推导隐晦规则,并分析所有规则
      为所有的目标文件创建依赖关系链
      根据依赖关系,决定哪些目标要重新生成
      执行生成命令
    编译原则:
      当前目录下找名字叫“GNUmakefile”、“makefile”或“Makefile”的文件或指定的makefile文件;
      如果找到,它会找文件中的第一个目标文件(target),并把这个文件作为最终的目标文件;
      目标依赖的源文件没有被编译过,则对各个 源文件进行编译并进行链接,生成最后的可执行程序;
      每一个在上次执行 make 之后修改过的源代码文件在本次执行 make 时将会被重新编译;
      头文件在上一次执行 make 之后被修改,则所有包含此头文件的 源文件在本次执行。
posted @ 2015-11-04 20:38  何人之名  阅读(208)  评论(0)    收藏  举报