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

wei738357 2003-02-03 01:52:09
makefile是什么东西,怎么创建makefile这个东西?
...全文
2431 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
williamzhang_zz 2003-03-06
  • 打赏
  • 举报
回复
make是一种工具,帮助你管理如何编译自己的工程的,这个工具一直很有用。
在VC下有nmake的工具,一般用户生成的工程不需要如何设置,所以。。。

如果一个庞大的工程的话,手动写make文件是很普通的事,尤其在linux和Unix下。
chunliu2003 2003-03-06
  • 打赏
  • 举报
回复
简单地说
makefile 就是编译的时候你要告诉编译器的你的一推
源文件之间的关系以帮助编译器正确的或者是更有效率地工作
在IDE下面这些事情自动生成的工程文件代劳了

rivershan 2003-02-04
  • 打赏
  • 举报
回复
去看32位汇编~
make工具可以生成它~
VC自动生成~
dzhcheng 2003-02-04
  • 打赏
  • 举报
回复
在linux下编程经常用到的

MagiSu 2003-02-04
  • 打赏
  • 举报
回复
好早以前编译C++的东西了。
firingme 2003-02-03
  • 打赏
  • 举报
回复
jacky中《C++ Primer》的毒不浅啊…………
说话都带着那个调调,呵呵……
skywarship 2003-02-03
  • 打赏
  • 举报
回复
makefile 是相当重要的东西
直到vc6 microsoft都还在用

unix/linux中就更不用说了
一定要好好了解
xghost 2003-02-03
  • 打赏
  • 举报
回复
up
brucegong 2003-02-03
  • 打赏
  • 举报
回复




GNU的文档里面有说过的。


makefile还是很有用的,因为不是每一个编译器都提供很充分的集成环境







DaNiao 2003-02-03
  • 打赏
  • 举报
回复
在LINUX下看看makefile的info,非常详细,而且有例子
其他一些系统也支持make比如VC,BC什么的,基本上大同小异
在WINDOWS里一般用make或nmake编译
asvaboy1980 2003-02-03
  • 打赏
  • 举报
回复
其实makefile文件还是很有必要来掌握的,VC中提供nmake命令,编程序这是必须要学习的
就象用debug和gdb来调试程序一样普通和必须.
Frank001 2003-02-03
  • 打赏
  • 举报
回复
上面只是一部分,详细的你可以看看下面的这篇文章(从1033~1040)

http://www.chinaunix.net/bbsjh/12/1033.html
……
……
http://www.chinaunix.net/bbsjh/12/1040.html
Frank001 2003-02-03
  • 打赏
  • 举报
回复
是啊,
楼主如果想深入了解的话,可以看看下面这篇文章。(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 档……
-------------------------------------------------------------
jp311 2003-02-03
  • 打赏
  • 举报
回复
makefile就是make需要的文件呀,谁说老古董呀,楼上的一定是在win下待久了找本unix/linux编程基础的书,上面一定会有的(如果没有就扔了它:)).
seok 2003-02-03
  • 打赏
  • 举报
回复
这个啊,我也弄不清楚
好像现在已经是老古董,用不着的东西了

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧