CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

makefile是什么东西,怎么创建makefile这个东西?

楼主wei738357(wei738357)2003-02-03 13:52:09 在 C/C++ / C语言 提问

makefile是什么东西,怎么创建makefile这个东西? 问题点数:0、回复次数:15Top

1 楼seok(woo)回复于 2003-02-03 14:10:53 得分 0

这个啊,我也弄不清楚  
  好像现在已经是老古董,用不着的东西了Top

2 楼jiangpeng(Mr. J)回复于 2003-02-03 14:52:57 得分 0

makefile就是make需要的文件呀,谁说老古董呀,楼上的一定是在win下待久了找本unix/linux编程基础的书,上面一定会有的(如果没有就扔了它:)).Top

3 楼Frank001(Frank)回复于 2003-02-03 15:37:32 得分 0

是啊,  
  楼主如果想深入了解的话,可以看看下面这篇文章。(ZT)  
   
  ------------------------------------------------------  
  基本   makefile   结构    
  GNU   Make   的主要工作是读进一个文本文件,   makefile   。这个文   件里主要是有关哪些   文件(‘target’目的文件)是从哪些别的   文件(‘dependencies’依靠文件)中产   生的,用什么命令来进行   这个产生过程。有了这些信息,   make   会检查磁碟上的文件,如果   目的文件的时间戳(该文件生成或被改动时的时间)比至少它的一   个依靠文件旧的话,   make   就执行相应的命令,以便更新目的文件。   (目的文件不一定是最后的可执行档,它可以是任何一个文件。)   makefile   一般被叫做“makefile”或“Makefile”。当然你可以   在   make   的命令行指   定别的文件名。如果你不特别指定,它会寻   找“makefile”或“Makefile”,因此使用这两个名字是最简单   的。    
  一个   makefile   主要含有一系列的规则,如下:    
  例如,考虑以下的   makefile   :    
  ===   makefile   开始   ===    
  myprog   :   foo.o   bar.o    
  gcc   foo.o   bar.o   -o   myprog    
  foo.o   :   foo.c   foo.h   bar.h    
  gcc   -c   foo.c   -o   foo.o    
  bar.o   :   bar.c   bar.h    
  gcc   -c   bar.c   -o   bar.o    
  ===   makefile   结束   ===    
  这是一个非常基本的   makefile   ——   make   从最上面开始,把上   面第一个目的,   ‘myprog’,做为它的主要目标(一个它需要保   证其总是最新的最终目标)。给出的   规则说明只要文件‘myprog’   比文件‘foo.o’或‘bar.o’中的任何一个旧,下一行的命令将   会被执行。但是,在检查文件   foo.o   和   bar.o   的时间戳之前,它会往下查   找那些把   foo.o   或   bar.o   做为目标文件的规则。它找到的关于   foo.o   的规则,该文件的依靠文件是   foo.c,   foo.h   和   bar.h   。   它从下面再找不到生成这些依靠文件的规则,它就开始检   查磁碟   上这些依靠文件的时间戳。如果这些文件中任何一个的时间戳比   foo.o   的新,   命令   'gcc   -o   foo.o   foo.c'   将会执行,从而更新   文件   foo.o   。   接下来对文件   bar.o   做类似的检查,依靠文件在这里是文件   bar.c   和   bar.h   。   现在,   make   回到‘myprog’的规则。如果刚才两个规则中的任   何一个被执行,   myprog   就需要重建(因为其中一个   .o   档就会比   ‘myprog’新),因此连接命令将被   执行。    
          希望到此,你可以看出使用   make   工具来建立程序的好处——前   一章中所有繁琐的检   查步骤都由   make   替你做了:检查时间戳。   你的源码文件里一个简单改变都会造成那   个文件被重新编译(因   为   .o   文件依靠   .c   文件),进而可执行文件被重新连接(因   为   .o   文件被改变了)。其实真正的得益是在当你改变一个   header   档的时候——你不   再需要记住那个源码文件依靠它,因为所有的   资料都在   makefile   里。   make   会很轻   松的替你重新编译所有那   些因依靠这个   header   文件而改变了的源码文件,如有需   要,再   进行重新连接。   当然,你要确定你在   makefile   中所写的规则是正确无误的,只   列出那些在源码文件   中被   #include   的   header   档……    
  -------------------------------------------------------------  
  Top

4 楼Frank001(Frank)回复于 2003-02-03 16:08:42 得分 0

上面只是一部分,详细的你可以看看下面的这篇文章(从1033~1040)  
   
  http://www.chinaunix.net/bbsjh/12/1033.html  
  ……  
  ……  
  http://www.chinaunix.net/bbsjh/12/1040.htmlTop

5 楼asvaboy1980(蓝boy)回复于 2003-02-03 18:21:10 得分 0

其实makefile文件还是很有必要来掌握的,VC中提供nmake命令,编程序这是必须要学习的  
  就象用debug和gdb来调试程序一样普通和必须.Top

6 楼DaNiao(鸿雁)回复于 2003-02-03 18:25:33 得分 0

在LINUX下看看makefile的info,非常详细,而且有例子  
  其他一些系统也支持make比如VC,BC什么的,基本上大同小异  
  在WINDOWS里一般用make或nmake编译Top

7 楼brucegong(飞行猪)回复于 2003-02-03 18:26:08 得分 0

 
   
   
   
  GNU的文档里面有说过的。  
   
   
  makefile还是很有用的,因为不是每一个编译器都提供很充分的集成环境  
   
   
   
   
   
   
   
  Top

8 楼xghost(菜鸟)回复于 2003-02-03 20:18:48 得分 0

upTop

9 楼skywarship(很菜的小李)回复于 2003-02-03 20:55:32 得分 0

makefile   是相当重要的东西  
  直到vc6   microsoft都还在用  
   
  unix/linux中就更不用说了  
  一定要好好了解Top

10 楼firingme(木头)回复于 2003-02-03 22:00:44 得分 0

jacky中《C++   Primer》的毒不浅啊…………  
  说话都带着那个调调,呵呵……  
  Top

11 楼rivershan(阿门)回复于 2003-02-04 12:56:20 得分 0

去看32位汇编~  
  make工具可以生成它~  
  VC自动生成~  
  Top

12 楼MagiSu(为GPA奋斗中……)回复于 2003-02-04 14:21:24 得分 0

好早以前编译C++的东西了。Top

13 楼dzhcheng(逸枫)回复于 2003-02-04 20:34:22 得分 0

在linux下编程经常用到的  
   
  Top

14 楼chunliu2003(chunliu2003)回复于 2003-03-06 13:46:26 得分 0

简单地说  
  makefile   就是编译的时候你要告诉编译器的你的一推  
  源文件之间的关系以帮助编译器正确的或者是更有效率地工作  
  在IDE下面这些事情自动生成的工程文件代劳了  
   
  Top

15 楼sakulafly((樱花落))回复于 2003-03-06 13:56:48 得分 0

make是一种工具,帮助你管理如何编译自己的工程的,这个工具一直很有用。  
  在VC下有nmake的工具,一般用户生成的工程不需要如何设置,所以。。。  
   
  如果一个庞大的工程的话,手动写make文件是很普通的事,尤其在linux和Unix下。Top

相关问题

  • 请问,在内存中创建设备场景是不是用CreateCompatibleDC,创建后,怎么样往里画东西?
  • 怎么在一个新创建的窗口上画东西(急,在线等待)
  • 有人知道.DUL文件是什么东西,有什么用,怎么创建?
  • 弱智问题,在Pb8.0里面.pbt是什么东西,怎么创建它?
  • SAFEARRAY怎么创建?
  • 我想在内存中创建一个dc,然后在里面画东西,请问怎么样做?
  • ADO到底是什么?怎么动态的创建他呢?面板中的ADO里的那些东西怎么用呢?
  • 怎么创建文件?????????
  • 怎么创建surface?急!!!
  • 怎么创建集合类?

关键词

  • .net
  • 文件
  • 编译
  • 编译器
  • 执行
  • 源码
  • 检查
  • gcc
  • 连接
  • vc

得分解答快速导航

  • 帖主:wei738357

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo