免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
51 [报告]
发表于 2007-03-22 21:21 |只看该作者
呵呵, 我也是前几天刚开始学写 Makefile, 不过现在正忙着在win下搞毕设, 等有空再来慢慢研究.

论坛徽章:
0
52 [报告]
发表于 2007-03-27 12:06 |只看该作者

Makefile-0.4.0.tar.gz

最新更新

完全解决多目录编译

实现源文件与目标文件的分目录存储

解决依赖关系检查问题

Makefile-0.4.0.tar.gz

852 Bytes, 下载次数: 391

Makefile-0.4.0.tar.gz

论坛徽章:
0
53 [报告]
发表于 2007-03-27 12:06 |只看该作者
这次是比较完美的版本了


呵呵,可以暂时休息一下了

论坛徽章:
0
54 [报告]
发表于 2007-03-27 13:09 |只看该作者
部分主要内容




  1. vpath %.c $(SRC_DIR)
  2. vpath %.o $(OBJ_DIR)
  3. vpath %.d $(OBJ_DIR)


  4. $(OUT): $(OBJ_FILES)
  5.         @$(CC) $(addprefix $(OBJ_DIR),$(notdir $^))  -o $@
  6. %.o:%.c %.d
  7.         @$(CC) $(FLAG_COMPLE) $< $ -o $(OBJ_DIR)$@
  8. $(OBJ_DIR)%.d:%.c
  9.         @$(CC) $<  -MM -MD -o $@
  10. -include $(addprefix $(OBJ_DIR),$(DEP_FILES))
复制代码


说明:

vpath指定默认搜索路径

然后使用规则进行编译

include导入依赖关系

论坛徽章:
0
55 [报告]
发表于 2007-03-30 16:54 |只看该作者

最新更新 0.4.5版

更新说明:

最新版本增加功能如下:
    增加执行每个子目录下Makefile的 clean 目标

相关代码如下:



  1. GlobalClean:
  2.         @find . -type f -name "Makefile" |sed -n '2,$$p'|sed s/Makefile/\ \`pwd\`/g|awk ' {ECHO="echo"};{CD="cd "};{MAKE="&& make clean&&"};{print ECHO,CD,$$1,MAKE,CD,$$2 } ' |sh
复制代码

论坛徽章:
0
56 [报告]
发表于 2007-03-30 16:57 |只看该作者

最新版本上传

下载连接见下

Makefile-0.4.5.tar.gz

1016 Bytes, 下载次数: 1636

Makefile-0.4.5.tar.gz

论坛徽章:
0
57 [报告]
发表于 2007-04-24 10:37 |只看该作者

我感觉还是不行啊

我下载了makefile

感觉修改了.h文件后,.c文件还是不自动编译啊

.o 依赖于.c和.d

.d 依赖于.c

如果在.h中加几个空格. .d是不会发生变化的,.c也不会发生变化
那么.o 怎么会重新编译呢?

论坛徽章:
0
58 [报告]
发表于 2007-05-28 22:12 |只看该作者

回复 53楼 net_robber 的帖子

顶一个

论坛徽章:
0
59 [报告]
发表于 2007-05-29 09:09 |只看该作者
原帖由 j1j1h1 于 2007-4-24 10:37 发表
我下载了makefile

感觉修改了.h文件后,.c文件还是不自动编译啊

.o 依赖于.c和.d

.d 依赖于.c

如果在.h中加几个空格. .d是不会发生变化的,.c也不会发生变化
那么.o 怎么会重新编译呢?



这一行

  1. -include $(addprefix $(OBJ_DIR),$(DEP_FILES))
复制代码

导入的依赖关系中
会有
类似
  1. .o:.h
复制代码

这样的代码。
这样保证了.h文件改编后,以其为依赖的.o会被重新编译。
编译命令由

  1. .o:.c
复制代码

定义

如果方便,请贴出你的编译过程和你使用的Makefile

论坛徽章:
0
60 [报告]
发表于 2007-08-21 08:48 |只看该作者

多级目录,多目录好像不支持吧.

多级目录,多目录好像不支持吧.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP