免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2189 | 回复: 6
打印 上一主题 下一主题

怎么写makefile才能节省编译时间 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-05 22:06 |只看该作者 |倒序浏览
我的一个主目录dir0下有十个子目录dir1,dir2,dir3,...dir10
每个子目录下都有c程序和各自的makefile文件,各个子目录中的程序之间没有关系
主目录下的有一个makefile,如下:
all:
      cd  dir1; make
      cd  dir2;make
      cd  dir3;make
         ...
      cd  dir10;make

现在我只修改了几个子目录中的程序, 但在主目录下运行make,  makefile就会从dir1开始逐个检查,
直到所有子目录下文件都被检查一遍.

要问的就是怎么写makefile能让它只检查并更新我修改的那些程序?

[ 本帖最后由 thestones 于 2005-12-5 22:08 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2005-12-05 22:55 |只看该作者
是不是可以这样, 先在主目录下运行 make -n -q  , 打印出真正执行更新的命令, 然后写个脚本或者什么的执行
这些命令就行了

论坛徽章:
0
3 [报告]
发表于 2005-12-06 09:56 |只看该作者
automake

论坛徽章:
0
4 [报告]
发表于 2005-12-06 15:24 |只看该作者
10个子目录是相互独立的,怎么用automake在主目录下生成一个Makefile, 这个Makefile能够编译所有子目录里面的文件?
我今天试了一下automake,只能为每个子目录单独生成一个Makefile...    还要加强学习呀

论坛徽章:
0
5 [报告]
发表于 2005-12-06 16:11 |只看该作者
可以参考Linux源文件中的Makefile

论坛徽章:
0
6 [报告]
发表于 2005-12-06 17:55 |只看该作者
原帖由 thestones 于 2005-12-6 15:24 发表
10个子目录是相互独立的,怎么用automake在主目录下生成一个Makefile, 这个Makefile能够编译所有子目录里面的文件?
我今天试了一下automake,只能为每个子目录单独生成一个Makefile...    还要加强学习呀



Anjuta是一个集成开发环境,如果你使用它的话会省下来一些写makefile的时间

但是安装比较复杂

http://bbs.chinaunix.net/viewthr ... &extra=page%3D4

论坛徽章:
0
7 [报告]
发表于 2005-12-06 22:20 |只看该作者
除非你手工指定那些目录需要重新编译,make不可能知道到底有哪些文件被修改了。唯一的方法就是检查所有文件。所以如果你希望只是编译修改过的目录,应该到分别对应的目录里,执行make,而不是在上层目录执行make.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP