makefile 教程

makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。

Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。而makefile 文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关系。makefile 文件是许多编译器--包括 Windows NT 下的编译器--维护编译信息的常用方法,只是在集成开发环境中,用户通过友好的界面修改 makefile 文件而已。
 UNIX 系统中,习惯使用 Makefile 作为 makefile 文件。如果要使用其他文件作为 makefile,则可利用类似下面的 make 命令选项指定 makefile 文件。
一个文件,指示程序如何编译和链接程序。makefile文件的默认名称是名副其实的Makefile,但可以指定一个命令行选项的名称。
 
make程序有助于您在开发大型程序跟踪整个程序,其中部分已经改变,只有那些编译自上次编译的程序,它已经改变了部分。

关于编译阶段
 
编译一个小的C程序至少需要一个单一的文件.h文件(如适用)。虽然命令执行此任务只需CC file.c中,有3个步骤,以取得最终的可执行程序,如下所示:
 
编译阶段:所有的C语言代码.c文件中被转换成一个低级语言汇编语言;决策.s文件。
 
汇编阶段:前阶段所作的汇编语言代码,然后转换成目标代码的代码片段,该计算机直接理解。目标代码文件.o 结束。
 
链接阶段:编译程序涉及到链接的对象代码的代码库,其中包含一定的“内置”的功能,如printf的最后阶段。这个阶段产生一个可执行程序,默认情况下,这是名为a.out。

 

  • makefile 例子

    makefile 例子

    这是一个例子编译hello程序Makefile。此程序包含三个文件main.cpp,factorial.cpp,hello.cpp。 # Define required macros hereSHELL = /bin/shOBJS = main.o factorial.o hello.oCFLAG = -Wall -gCC = gccINCLUDE =LIBS = -lmhello:$......于2013-11-02发表在 Makefile ,阅读86。
  • Makefile 其他功能

    Makefile 其他功能

    make递归使用 递归使用的手段使用,make在makefile作为命令。这种技术是非常有用的,当你想要的makefile各种子系统组成一个更大的系统。例如,假设你有一个子目录,子目录都有其自己的......于2013-11-02发表在 Makefile ,阅读156。
  • Makefile 文件重新编译

    Makefile 文件重新编译

    make 程序是一个智能的实用程序和工作根据在源文件中的变化。如果有四个文件main.cpp,hello.cpp,factorial.cpp和functions.h。这里所有reamining文件是依赖functions.h,main.cpp的是依赖于hello.cpp,......于2013-11-02发表在 Makefile ,阅读200。
  • Makefile include

    Makefile include

    makefile include 指令 include指令告诉make暂停读取当前makefile文件和读取一个或多个其它的makefile,然后再继续。该指令是一行在makefile中,看起来像这样: include filenames... 文件名可以包含......于2013-11-02发表在 Makefile ,阅读62。
  • Makefile 指令

    Makefile 指令

    有好几种指令以不同的形式。让程序可能不支持所有指令。因此,请检查make是否支持指令,我们这里解释。 GNU make支持这些指令 条件指令 条件的指令 ifeq指令开始的条件,指定的条件......于2013-11-02发表在 Makefile ,阅读90。
  • Makefile 自定义后缀规则

    Makefile 自定义后缀规则

    就其本身而言,make已经知道,为了创建一个 .o文件,就必须使用 cc-c相应的c文件。 建成MAKE这些规则,可以利用这一点来缩短Makefile。如果仅仅只是表示 .h 文件的 Makefile依赖线,依赖于......于2013-11-02发表在 Makefile ,阅读132。
  • Makefile 定义规则

    Makefile 定义规则

    一个Makefile目标规则的一般语法 target [target...] : [dependent ....] [ command ...] 方括号中的项是可选的,省略号是指一个或多个。注意标签,每个命令前需要。 下面给出一个简单的例子,定义......于2013-11-02发表在 Makefile ,阅读189。
  • Makefile 宏

    Makefile 宏

    make程序允许您使用宏,这是类似的变量。 = 一对一个Makefile中定义的宏。例如: MACROS= -mePSROFF= groff -TpsDITROFF= groff -TdviCFLAGS= -O -systype bsd43LIBS = -lncurses -lm -lsdlMYFACE = :*) 特殊的宏 目标规则......于2013-11-02发表在 Makefile ,阅读117。
  • Makefile 定义依赖性

    Makefile 定义依赖性

    这是很常见的,最终的二进制文件将依赖于各种源代码和源代码的头文件。依存关系是重要的,因为他们告诉对任何目标的源。请看下面的例子 hello: main.o factorial.o hello.o$(CC) main.o fact......于2013-11-02发表在 Makefile ,阅读63。
  • 为什么需要Makefile?

    为什么需要Makefile?

    对于本次教程中的讨论,假定有以下的源文件。 main.cpp hello.cpp factorial.cpp functions.h main.cpp文件的内容 #include iostream.h#include functions.hint main(){ print_hello(); cout endl; cout The factorial of 5 is fac......于2013-11-01发表在 Makefile ,阅读121。
posted @ 2013-11-02 21:32  Linux308  阅读(390)  评论(0编辑  收藏  举报