make命令的关键是找出上一次各个文件的修改时间,利用此修改时间来比较相依 赖文件最后一次修改的时间。若目标文件的修改时间早于其相依文件的修 改时间,则必须先对相依文件进行处理(编译),进而来更新目标文件,若目标文件的修改时间迟于其相依文件的修改时间,则不对该相依文件进行处理(编译)。 利用它可以每次只编译自上次编译后发生变化的文件,从而可以减少一些不必要的编译工作,提高效率。
执行make命令所需要的信息:
(1)用户定义的描述文件,一般为makefile
(2)文件系统有关的数据和与时间有关的信息
(3)一组后缀规则
2.makefile文件
Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。而makefile 文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关系。
Makefile文件作为一种描述文档一般需要包含以下内容:
(1) 宏定义
(2) 源文件之间的相互依赖关系
(3) 在依赖关系基础上的可执行的命令序列
3.make命令
make命令的一般格式:
make【选项】【make描述文件】【宏定义】【目的文件】
make首先分析所有的宏定义参数(带嵌入等号的参数)并进行赋值,宏命令行覆盖在makefile中进行的定义,然后检验选项标志,最后递归的对每一个目的依赖文件进行检查。
unix下常用的选项如下:
f file 指定file文件为描述文件,如果file参数为"-"符,那么描述文件指向标准输入。如果没有"-f"参数,则系统将默认当前目录下名为 makefile或者名为Makefile的文件为描述文件。在Linux中, GNU make 工具在当前工作目录中按照GNUmakefile、makefile、Makefile的顺序搜索 makefile文件。
-i 忽略命令执行返回的出错信息。
-s 沉默模式,在执行之前不输出相应的命令行信息。
-r 禁止使用build-in规则。
-n 非执行模式,输出所有执行命令,但并不执行。
-t 更新目标文件。
-q make操作将根据目标文件是否已经更新返回"0"或非"0"的状态信息。
-p 输出所有宏定义和目标文件描述。
-d Debug模式,输出有关文件和检测时间的详细信息。
Linux下常用选项与Unix系统中稍有不同,下面是不同的部分:
-c dir 在读取 makefile 之前改变到指定的目录dir。
-I dir 当包含其他 makefile文件时,利用该选项指定搜索目录。
-h help文挡,显示所有的make选项。
-w 在处理 makefile 之前和之后,都显示工作目录。
相关推荐
Linux 下 make 命令是系统管理员和程序员用的频繁的命令之一。管理员用它通过命令行来编译和安装很多开源的工具,程序员用它来管理他们大型复杂的项目编译问题。本文我们将用一些实例来讨论 make 命令背后的工作机制...
主要介绍了linux下make命令的使用方法,Linux 下 make 命令是系统管理员和程序员用的最频繁的命令之一,感兴趣的朋友可以参考一下
Linux 下 make 命令是系统管理员和程序员用的最频繁的命令之一。管理员用它通过命令行来编译和安装很多开源的工具,程序员...这篇文章主要给大家介绍了关于linux下make命令实现输出高亮的方法,需要的朋友可以参考下。
Linux Unix环境下的make命令详解
Linux_make命令主要参数详解.txt
关于linux编程的make命令,手把手教你
LinuxUnix环境下的make命令详解
众所周知在Linux系统下的make 命令是系统管理员和程序员用的最频繁的命令之一。管理员用它通过命令行来编译和安装很多开源的...下面这篇文章我们将用一些实例来讨论make命令背后的工作机制。有需要的朋友们可以看看。
关于linux的常用操作命令,非常清楚.
Linux编程make命令介绍[文].pdf
非常详细的linux命令中shell命令与make命令的介绍,很好的参考材料。非常有用。
而且如此多的源文件,如果每次都要键入gcc命令进行编译的话,那对程序员 来说简直就是一场灾难。而make工具则可自动完成编译工作,并且可以只对程序员在上次编译后修改过的部分进行编译。因此,有效的利用make和 ...
make 命令详解 linux make命令 详解make各种参数等
关于Make命令的使用说明
1.linux vim使用 2.shell脚本编程 3.gcc编译器编译选项详细说明 4.gdb调试器调试方法详细说明 5.make工具使用说明
GNU make中文手册V3.8.pdf GNU Make 使用手册(中文).pdf 跟我一起学Makefile.pdf vim_user_manual_603.0.pdf Linux常用命令全集.CHM
59——通过Make与Makefile对Linux进行移植与裁剪(基于ARM9内核的2410开发板)