关于 gcc MT MF[转]
(2013-11-19 23:15:12)| 分类: 编程 |
%.d : %.c
$(CC) $(CCFLAGS) -MF"$@" -MG -MM -MP -MT"$@" -MT"$(<:.c=.o)" "$<"
查资料说:
关于-MF和-MT,这些选项是用来生成依赖文件列表的,而这个列表又能以-include 或者include 的形式添加到Makefile中。其中MF指定文件名,MT指定依赖目标名。
不明白的地方:
1 MT MF 在上述的编译语句中其什么作用?
2 上面说的“MF指定文件名,MT指定依赖目标名”含义是什么?
gcc makefile
------Solutions------
-MF很好理解,就是输出依赖文件名
-MT就是说在输出的依赖文件中的目标,楼主的例子里为-MT"$@" -MT"$(<:.c=.o)"
就是说在输出的依赖文件中目标是"$@" 和 "$(<:.c=.o)"
看个例子就明白了,注意红色和蓝色的部分,分别对应两个MT的"目标"
$cat Makefile
%.d: %.c
$(CC) $(CCFLAGS) -MF"$@" -MG -MM -MP -MT"$@" -MT"$(<:.c=.o)" "$<"
$make demo.d
gcc -MF"demo.d" -MG -MM -MP -MT"demo.d" -MT"demo.o" "demo.c"
$cat demo.d
demo.ddemo.o: demo.c
查资料说:
------Solutions------
-MF很好理解,就是输出依赖文件名
-MT就是说在输出的依赖文件中的目标,
就是说在输出的依赖文件中目标是
看个例子就明白了,
$
%.d
$
gcc
$
demo.d
前一篇:两个编译错误
后一篇:lex yacc 解析变量赋值

加载中…