在函数式宏定义中,#
运算符用于创建字符串,#
运算符后面应该跟一个形参
在宏定义中可以用##
运算符把前后两个预处理Token连接成一个预处理Token,和#
运算符不同,##
运算符不仅限于函数式宏定义,变量式宏定义也可以用
make
$@,表示规则中的目标。
$<,表示规则中的第一个条件。
$?,表示规则中所有比目标新的条件,组成一个列表,以空格分隔。
$^,表示规则中的所有条件,组成一个列表,以空格分隔。
-n 选项只打印要执行的命令,而不会真的执行命令,这个选项有助于我们检查 Makefile 写得是否正确,由于 Makefile 不是顺序执行的,用这个选项可以先看 看命令的执行顺序,确认无误了再真正执行命令
-C 选项可以切换到另一个目录执行那个目录下的 Makefile,比如先退到上一级 目录再执行我们的 Makefile