Make选项及makefile常用变量

Make命令可以带几种参数: 标志, 宏定义, 描述文件名和目标文件名, 标准形式为:
Make [flags] [macro definitions] [targets]
 
在unix下, flags包含:
-f file   指定file文件为描述文件. 如果file参数为"-", 描述文件指向标准输入, 如果没有"-f", 则系统默认当前目录下makefile或Makefile为描述文件. (ps: 在linux下, GNU Make按照GNUmakefile, 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之前和之后, 都显示工作目录
 
宏定义将覆盖makefile文件种的宏定义.
 
target指定要编译的目标,并且允许同时定义多个编译目标,执行时按照从左向右的顺序依次编译target中指定的目标文件. 如果没有指定target,则命令默认描述文件(如makefile)中的第一个目标.
 
Makefile常用变量(GNU):
$@  目标文件名
$<   dependences中的第一项名称
$^   所有dependences中的项名, 各项名以空格分开
$?    所有dependences中比目标新的项名, 各项名以空格分开
 
"@"符号禁止打印输出所在命令行,也就是说所有以@开头的命令行只执行,而不被打印输出.

你可能感兴趣的:(Make选项及makefile常用变量)