Prayer

在一般中寻求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

make 、make clean、make depend的区别

Posted on 2009-04-29 19:02 Prayer 阅读(10896) 评论(1)  编辑 收藏 引用 所属分类: C/C++LINUX/UNIX/AIX
1 make

根据makefile制定的规则,将c\c++文件编译成*.o文件,然后进一步生成可执行文件。

2 make clean
 
删除源代码(C\C++ code)生成的执行文件和所有的中间目标文件

3 make depend

一种makefile的规则,通过扫描仪个目录下的所有C\C++ 代码,从而判断出文件之间的依赖关系,如a.cc文件中调用了b.h(如以形势include<b.h>),如果之后a.cc文件被改动,那么只需要重新编译a.cc文件,不需要编译b.h文件。否则所有的文件都需要重新编译

Feedback

# re: make 、make clean、make depend的区别  回复  更多评论   

2009-04-30 09:07 by Morya
http://www.stlchina.org/twiki/bin/view.pl/ScriptProgram/LearnMakefile

三、make是如何工作的

在默认的方式下,也就是我们只输入make命令。那么,

1、make会在当前目录下找名字叫“Makefile”或“makefile”的文件。
2、如果找到,它会找文件中的第一个目标文件(target),在上面的例子中,他会找到“edit”这个文件,并把这个文件作为最终的目标文件。
3、如果edit文件不存在,或是edit所依赖的后面的 .o 文件的文件修改时间要比edit这个文件新,那么,他就会执行后面所定义的命令来生成edit这个文件。
4、如果edit所依赖的.o文件也存在,那么make会在当前文件中找目标为.o文件的依赖性,如果找到则再根据那一个规则生成.o文件。(这有点像一个堆栈的过程)
5、当然,你的C文件和H文件是存在的啦,于是make会生成 .o 文件,然后再用 .o 文件生命make的终极任务,也就是执行文件edit了。

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理