怎么写makefile才能节省编译时间
我的一个主目录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 编辑 ]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
是不是可以这样, 先在主目录下运行 make -n -q , 打印出真正执行更新的命令, 然后写个脚本或者什么的执行
这些命令就行了
automake
10个子目录是相互独立的,怎么用automake在主目录下生成一个Makefile, 这个Makefile能够编译所有子目录里面的文件?
我今天试了一下automake,只能为每个子目录单独生成一个Makefile... 还要加强学习呀
可以参考Linux源文件中的Makefile
Anjuta是一个集成开发环境,如果你使用它的话会省下来一些写makefile的时间
但是安装比较复杂
http://bbs.chinaunix.net/viewthr ... &extra=page%3D4
除非你手工指定那些目录需要重新编译,make不可能知道到底有哪些文件被修改了。唯一的方法就是检查所有文件。所以如果你希望只是编译修改过的目录,应该到分别对应的目录里,执行make,而不是在上层目录执行make.