GCC 编译选项 MF 和 MT

markman101 2013-02-07 03:35:30
%.d : %.c
$(CC) $(CCFLAGS) -MF"$@" -MG -MM -MP -MT"$@" -MT"$(<:.c=.o)" "$<"

查资料说:
关于-MF和-MT,这些选项是用来生成依赖文件列表的,而这个列表又能以-include <dlist>或者include <dlist>的形式添加到Makefile中。其中MF指定文件名,MT指定依赖目标名。
不明白的地方:
1 MT MF 在上述的编译语句中其什么作用?
2 上面说的“MF指定文件名,MT指定依赖目标名”含义是什么?
...全文
1255 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
mymtom 2013-02-07
  • 打赏
  • 举报
回复
-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.d demo.o: demo.c

23,223

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧