看了陈皓的《跟我一起写 Makefile》,整理了一下make的参数
http://blog.csdn.net/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”选项。 |
|