免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: net_robber
打印 上一主题 下一主题

【30日更新】Makefile(用于多目录 源代码 编译)-56楼提供最新版本下载 [复制链接]

论坛徽章:
0
1 [报告]
发表于 2007-03-20 09:33 |显示全部楼层
我昨天测试了一下17楼的那个, 不能正确处理头文件依赖
需要加上:
DEPS = $(OBJS:.o=.d)  # 这个只用于当前目录
-include $(DEPS)

我机器: FreeBSD 6.2,  GNU Make 3.81

[ 本帖最后由 I/0 于 2007-3-20 09:36 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-03-20 17:57 |显示全部楼层
我先 gmake dir 生成目录, 然后在 src/ 下建了三文件: a.h a.c main.c
deps:
a.c: a.h
main.c: a.h

以下是测试结果:

$ gmake
gcc src/a.c -MM -o obj/a.d
gcc -c -g src/a.c -o obj/a.o
gcc src/main.c -MM -o obj/main.d
gcc -c -g src/main.c -o obj/main.o
gcc obj/a.o obj/main.o -o debug/out
rm obj/a.d obj/main.d

$ touch src/a.h

$ gmake
gmake: Nothing to be done for `all'.

论坛徽章:
0
3 [报告]
发表于 2007-03-21 08:59 |显示全部楼层
原帖由 net_robber 于 2007-3-20 18:07 发表



是这样的,依赖关系不是靠名字相同检查的

要求.c文件中,有include  .h文件,才会出现依赖

也就是说。你要在a.c Includ a.h


呵呵, 我是嫌帖那几个文件的源码太长才简单地用 deps: a.c: a.h  main.c a.h 描述了一下include关系,
a.c 和 main.c 里面都有 include "a.h"

论坛徽章:
0
4 [报告]
发表于 2007-03-22 21:21 |显示全部楼层
呵呵, 我也是前几天刚开始学写 Makefile, 不过现在正忙着在win下搞毕设, 等有空再来慢慢研究.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP