linux的make命令
linux的make命令
Linux系统下编译时利用make命令可以很好地减少不必要的编译工作,提高效率,下面由学习啦小编为大家整理了linux的make命令的相关知识,希望大家喜欢!
linux的make命令详解
1.功能说明
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命令实例解析
1.make -j 18 :表示同时使用18个线程进行编译。该数字建议小于或者等于CPU的个数。