看了陈皓的《跟我一起写 Makefile》,整理了一下make的参数
http://blog.youkuaiyun.com/haoel/article/details/2886/
参数 |
功能 |
例子 |
-f |
如果想执行某个特殊名字的Makefile(名字不是“GNUmakefile”、“makefile”和“Makefile”) |
make –f hchen.mk |
-n |
把规则和连带规则下的命令打印出来,但不执行 |
|
-t |
把目标文件的时间更新,但不更改目标文件, make假装编译目标,但不是真正的编译目标,只是把目标变成已编译过的状态 |
|
-q |
查找目标是否存在,存在,什么也不做;不存在,打印一条出错信息 |
|
-W |
需指定一个文件。一般是是源文件(或依赖文件),Make会根据规则推导来运行依赖于这个文件的命令,可以和“-n”参数一同使用,来查看这个依赖文件所发生的规则命令。 |
|
-B |
所有的目标都需要更新(重编译)。 |
|
-C <dir> |
指定读取makefile的目录。如果有多个“-C”参数,make的解释是后面的路径以前面的作为相对路径,并以最后的目录作为被指定目录 |
make –C ~hchen/test –C prog”等价于“make –C ~hchen/test/prog”。 |
—debug[=<options> |
输出make的调试信息。 <options>的取值: a —all,输出所有的调试信息。 b —basic,只输出简单的调试信息。即输出不需要重编译的目标。 v —verbose,在b选项的级别之上。输出的信息包括哪个makefile被解析,不需要被重编译的依赖文件(或是依赖目标)等。 i —implicit,输出所有隐含规则。 j —也就是jobs,输出执行规则中命令的详细信息,如命令的PID、返回码等。 m —— 也就是makefile,输出make读取makefile,更新makefile,执行makefile的信息 |
|
-d |
相当于“--debug=a” |
|
-e |
指明环境变量的值覆盖makefile中定义的变量的值 |
|
-f=<file> |
指定需要执行的makefile。 |
|
-h |
显示帮助信息 |
|
-i |
在执行时忽略所有的错误 |
|
-I <dir> |
指定一个被包含makefile的搜索目标。可以使用多个“-I”参数来指定多个目录 |
|
-j [<jobsnum>] |
同时运行命令的个数 |
|
-k |
出错也不停止运行。 |
|
-l <load> |
指定make运行命令的负载 |
|
-n |
仅输出执行过程中的命令序列,但并不执行。 |
|
-o <file> |
不重新生成的指定的<file>,即使这个目标的依赖文件新于它 |
|
-p |
输出makefile中的所有数据,包括所有的规则和变量 |
make –p –f /dev/null 输出的信息会包含着你的makefile文件的文件名和行号 |
-q |
不运行命令,也不输出 |
make –qp 只输出信息而不想执行makefile |
-r |
禁止make使用任何隐含规则。 |
|
-R |
禁止make使用任何作用于变量上的隐含规则 |
|
-s |
在命令运行时不输出命令的输出。 |
|
-S |
取消“-k”选项的作用 |
|
-t |
阻止生成目标的命令运行 |
|
-v |
输出make程序的版本、版权等关于make的信息 |
|
-w |
输出运行makefile之前和之后的信息。 |
|
--no-print-directory |
禁止“-w”选项。 |
|