`

make的参数 隐含规则使用的变量 关于命令参数的变量

 
阅读更多

make的参数
“-b”

“-m”

这两个参数的作用是忽略和其它版本make的兼容性。

“-B”

“--always-make”

认为所有的目标都需要更新(重编译)。

“-C <dir>;”

“--directory=<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”

“--environment-overrides”

指明环境变量的值覆盖makefile中定义的变量的值。

“-f=<file>;”

“--file=<file>;”

“--makefile=<file>;”

指定需要执行的makefile。

“-h”

“--help”

显示帮助信息。

“-i”

“--ignore-errors”

在执行时忽略所有的错误。

“-I <dir>;”

“--include-dir=<dir>;”

指定一个被包含makefile的搜索目标。可以使用多个“-I”参数来指定多个目录。

“-j [<jobsnum>;]”

“--jobs[=<jobsnum>;]”

指同时运行命令的个数。如果没有这个参数,make运行命令时能运行多少就运行多少。如果有一个以上的“-j”参数,那么仅最后一个“-j”才是有效的。(注意这个参数在MS-DOS中是无用的)

“-k”

“--keep-going”

出错也不停止运行。如果生成一个目标失败了,那么依赖于其上的目标就不会被执行了。

“-l <load>;”

“--load-average[=<load]”

“—max-load[=<load>;]”

指定make运行命令的负载。

“-n”

“--just-print”

“--dry-run”

“--recon”

仅输出执行过程中的命令序列,但并不执行。

“-o <file>;”

“--old-file=<file>;”

“--assume-old=<file>;”

不重新生成的指定的<file>;,即使这个目标的依赖文件新于它。

“-p”

“--print-data-base”

输出makefile中的所有数据,包括所有的规则和变量。这个参数会让一个简单的makefile都会输出一堆信息。如果你只是想输出信息而不想 执行makefile,你可以使用“make -qp”命令。如果你想查看执行makefile前的预设变量和规则,你可以使用“make –p –f /dev/null”。这个参数输出的信息会包含着你的makefile文件的文件名和行号,所以,用这个参数来调试你的makefile会是很有用的, 特别是当你的环境变量很复杂的时候。

“-q”

“--question”

不运行命令,也不输出。仅仅是检查所指定的目标是否需要更新。如果是0则说明要更新,如果是2则说明有错误发生。

“-r”

“--no-builtin-rules”

禁止make使用任何隐含规则。

“-R”

“--no-builtin-variabes”

禁止make使用任何作用于变量上的隐含规则。

“-s”

“--silent”

“--quiet”

在命令运行时不输出命令的输出。

“-S”

“--no-keep-going”

“--stop”

取消“-k”选项的作用。因为有些时候,make的选项是从环境变量“MAKEFLAGS”中继承下来的。所以你可以在命令行中使用这个参数来让环境变量中的“-k”选项失效。

“-t”

“--touch”

相当于UNIX的touch命令,只是把目标的修改日期变成最新的,也就是阻止生成目标的命令运行。

“-v”

“--version”

输出make程序的版本、版权等关于make的信息。

“-w”

“--print-directory”

输出运行makefile之前和之后的信息。这个参数对于跟踪嵌套式调用make时很有用。

“--no-print-directory”

禁止“-w”选项。

“-W <file>;”

“--what-if=<file>;”

“--new-file=<file>;”

“--assume-file=<file>;”

假定目标<file>;需要更新,如果和“-n”选项使用,那么这个参数会输出该目标更新时的运行动作。如果没有“-n”那么就像运行UNIX的“touch”命令一样,使得<file>;的修改时间为当前时间。

“--warn-undefined-variables”

只要make发现有未定义的变量,那么就输出警告信息。


隐含规则使用的变量
1、关于命令的变量。

AR

函数库打包程序。默认命令是“ar”。

AS

汇编语言编译程序。默认命令是“as”。

CC

C语言编译程序。默认命令是“cc”。

CXX

C++语言编译程序。默认命令是“g++”。

CO

从 RCS文件中扩展文件程序。默认命令是“co”。

CPP

C程序的预处理器(输出是标准输出设备)。默认命令是“$(CC) –E”。

FC

Fortran 和 Ratfor 的编译器和预处理程序。默认命令是“f77”。

GET

从SCCS文件中扩展文件的程序。默认命令是“get”。

LEX

Lex方法分析器程序(针对于C或Ratfor)。默认命令是“lex”。

PC

Pascal语言编译程序。默认命令是“pc”。

YACC

Yacc文法分析器(针对于C程序)。默认命令是“yacc”。

YACCR

Yacc文法分析器(针对于Ratfor程序)。默认命令是“yacc –r”。

MAKEINFO

转换Texinfo源文件(.texi)到Info文件程序。默认命令是“makeinfo”。

TEX

从TeX源文件创建TeX DVI文件的程序。默认命令是“tex”。

TEXI2DVI

从Texinfo源文件创建军TeX DVI 文件的程序。默认命令是“texi2dvi”。

WEAVE

转换Web到TeX的程序。默认命令是“weave”。

CWEAVE

转换C Web 到 TeX的程序。默认命令是“cweave”。

TANGLE

转换Web到Pascal语言的程序。默认命令是“tangle”。

CTANGLE

转换C Web 到 C。默认命令是“ctangle”。

RM

删除文件命令。默认命令是“rm –f”。

2、关于命令参数的变量

下面的这些变量都是相关上面的命令的参数。如果没有指明其默认值,那么其默认值都是空。

ARFLAGS

函数库打包程序AR命令的参数。默认值是“rv”。

ASFLAGS

汇编语言编译器参数。(当明显地调用“.s”或“.S”文件时)。

CFLAGS

C语言编译器参数。

CXXFLAGS

C++语言编译器参数。

COFLAGS

RCS命令参数。

CPPFLAGS

C预处理器参数。( C 和 Fortran 编译器也会用到)。

FFLAGS

Fortran语言编译器参数。

GFLAGS

SCCS “get”程序参数。

LDFLAGS

链接器参数。(如:“ld”)

LFLAGS

Lex文法分析器参数。

PFLAGS

Pascal语言编译器参数。

RFLAGS

Ratfor 程序的Fortran 编译器参数。

YFLAGS

Yacc文法分析器参数。

分享到:
评论

相关推荐

    GNU MAKE 中文手册

    10.4 make隐含规则链 10.5 模式规则 10.5.1 模式规则介绍 10.5.2 模式规则示例 10.5.3 自动化变量 10.5.4 模式的匹配 10.5.5 万用规则 10.5.6 重建内嵌隐含规则 10.6 缺省规则 10.7 后缀规则 10.8 隐含...

    GNU make中文手册

    10.4 make隐含规则链 10.5 模式规则 10.5.1 模式规则介绍 10.5.2 模式规则示例 10.5.3 自动化变量 10.5.4 模式的匹配 10.5.5 万用规则 10.5.6 重建内嵌隐含规则 10.6 缺省规则 10.7 后缀规则 10.8 隐含规则搜索算法 ...

    GNU make 中文手册 网页版

    10.4 make隐含规则链 10.5 模式规则 10.5.1 模式规则介绍 10.5.2 模式规则示例 10.5.3 自动化变量 10.5.4 模式的匹配 10.5.5 万用规则 10.5.6 重建内嵌隐含规则 10.6 缺省规则 10.7 后缀规则 10.8 隐含...

    Gun make中文手冊

    10.4 make隐含规则链 10.5 模式规则 10.5.1 模式规则介绍 10.5.2 模式规则示例 10.5.3 自动化变量 10.5.4 模式的匹配 10.5.5 万用规则 10.5.6 重建内嵌隐含规则 10.6 缺省规则 10.7 后缀规则 10.8 隐含...

    gnu_makefile文档pdf html

    10.3隐含规则使用的变量 10.4隐含规则链 10.5定义与重新定义格式规则 10.5.1格式规则简介 10.5.2格式规则的例子 10.5.3自动变量 10.5.4格式匹配 10.5.5万用规则 10.5.6删除隐含规则 10.6定义最新类型的缺省...

    跟我一起写 Makefile.doc

    三、隐含规则使用的变量 54 四、隐含规则链 57 五、定义模式规则 57 六、老式风格的"后缀规则" 61 七、隐含规则搜索算法 62 Ⅻ)使用make更新函数库文件 63 一、函数库文件的成员 63 二、函数库成员的隐含规则 63 三...

    跟我一起写 Makefile 作者:陈皓 整理:祝冬华

    三、隐含规则使用的变量 (65) 1、关于命令的变量。 (65) 2、关于命令参数的变量 (66) 四、隐含规则链 (67) 五、定义模式规则 (68) 1、模式规则介绍 (68) 2、模式规则示例 (69) 3、自动化变量 (70) 4、模式的匹配 (72...

    【推荐】GNU make中文手册

    make的隐含规则 10.1 隐含规则的使用 10.2 make的隐含规则一览 10.3 隐含变量 10.3.1 代表命令的变量 10.3.2 命令参数的变量 10.4 make隐含规则链 10.5 模式规则 10.5.1 模式规则介绍 ...

    GNUmake v3 中文版.chm

    目 录 第一章:概述 ...第十章:make的隐含规则 第十一章:使用make更新静态库文件 第十二章 : GNU make的特点 第十三章 和其它版本的兼容 第十四章 Makefile的约定 第十五章 make的常见错误信息

    makefile 详细教程

    跟我一起写 Makefile 1 概述 1 Makefile 介绍 2 一、Makefile的规则 3 二、一个示例 4 三、make是如何工作的 5 四、makefile中使用变量 6 五、让make自动推导 7 六、另类风格的makefile 8 ...隐含规则 59

    GNU-Makefile中文手册-Ver3.8.pdf

    隐含变量 代表命令的变量 命令参数的变量 隐含规则链 模式规 模式规则介绍 模式规则示例 自动化变量 年月日 中文于册 模式的匹配 万用规则 重建内嵌隐含规则 缺省规则 后缀规则 隐含规则搜索算法 笫十一章:使用更新...

    Makefile规则、Makefile规则、Makefile的条件执行、Makefile函数、Makefile库的生成和使用

    Makefile的基本语法包括五个部分:Makefile规则、Makefile规则、Makefile的条件执行、Makefile函数、Makefile库的生成和...在一个完整的 Makefile 中,包含了 5 个东西:显式规则、隐含规则、变量定义、 指示符和注释。

    make与Makefile

    3.4.4.目录搜索和隐含规则 13 3.5.PHONY目标 13 3.6.FORCE目标 14 3.7.空目标 14 3.8.内建的特殊目标 14 3.9 一个规则多个目标 15 3.10一个目标多条规则 16 3.11.静态模式规则 16 3.11.1.语法 16 3.11.2.静态模式...

    uClinux源代码中Make文件完全解析

    2.2.6 命令的使用技巧  2.2.7 变量的定义和使用  2.2.8 条件语句  2.2.9 函数  2.2.10 运行Make文件  2.2.11 隐含规则  2.2.12 用make更新档案文件  2.3 Make文件中的惯例  2.4 ...

    Makefile编程

    GNU make 中文手册 GNU make 介绍 Makefile 总述 Makefile的规则 规则的命令 Makefile中的变量 ... make的隐含规则 使用make更新静态库文件 GNU make的特点 Makefile的约定 make 的常见错误信息

    万能makefile写法详解,一步一步写一个实用的makefile

    对makefile里下面4行,可看出make的隐含规则,执行foo可看到结果: 第3、4行表示由.c得到.o,第1、2行表示由.o得到可执行文件。 如果把第3、4行注释的话,效果一样。 即不写.o来自.c的规则,它会自动执行gcc -c -o ...

    跟我一起写Makefile (PDF重制版).pdf

    主要是makefile编写方面的知识,包括命令、规则、变量、判断条件、函数等的使用,make运行,隐含规则等等

    PC-lint研究总结

    3.3.1.5 隐含规则 27 3.3.2 平台的makefile结构 27 3.3.2.1 平台级 28 3.3.2.2 子系统级(以支撑为例) 28 3.3.2.3 平台makefile的调用方式 29 3.3.3 平台makefile同PC-lint的集成 29 4. 平台推广方案(建议) 34 ...

    跟我一起写Makefile.txt

    1. 概述 2. 关于程序的编译和链接 3. Makefile 介绍 4. Makefile 总述 5. 书写规则 ...7. 使用变量 8. 使用条件判断 9. 使用函数 10. make 的运行 11. 隐含规则 12. 使用make更新函数库文件 13. 后序

Global site tag (gtag.js) - Google Analytics