📄 4.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>20CN网络安全小组--makefile(4) </title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><meta name="keywords" content="黑客,安全,网络,编程,黑客软件,安全软件,hacker,UNIX,Linux,FreeBSD"><meta name="description" content="黑客,安全,网络,编程,黑客软件,安全软件,hacker,UNIX,Linux,FreeBSD"><STYLE type=text/css>A { font-size: 12px; color: 004d9c; TEXT-DECORATION: none}A:visited { TEXT-DECORATION: none}A:active { TEXT-DECORATION: none}A:hover { color: #0000FF; text-decoration: none}.9p { font-size: 12px }.10p { font-size: 10pt}.9pten { font-size: 9pt; font-family: "verdana, Helvetica, Times New Roman, sans-serif"}.textinfo { font-size: 10.5pt; font-family: "verdana, Helvetica, Times New Roman, 宋体, sans-serif"; line-height: 21px ;letter-spacing:}.code { font-size: 10pt; font-family: "Courier New, sans-serif"}</STYLE></head><body bgcolor="#FFFFFF" leftmargin="0" topmargin="4" marginwidth="0" marginheight="0"><div align="center"><table width="768" border="1" bordercolor="#FFFFFF" class="9p"> <tr> <td bordercolor="ffffff" colspan="2" bgcolor="ffffff" align="right"> <a href="http://www.20cn.net/aboutus.html">关于我们</a> | <a href="http://www.20cn.net/joinus.html">加入我们</a> | <a href="http://www.20cn.net/help.html">网站结构</a> | <a href="http://www.20cn.net/linkus.html">交换连接</a> | <a href="mailto:webmaster@20cn.com">联系我们</a> </td> </tr></table><table width="768" border="1" height="51" bordercolor="5296ff" class="9p"> <tr> <td height="43" bordercolor="ffffff" colspan="2" bgcolor="ffffff"> <table width="100%" bgcolor="ffffff" bordercolor="ffffff" cellpadding="0" cellspacing="0" border="0"> <tr> <td ><img src="http://www.20cn.net/images/logo.jpg"></td> <td width="%100" height="40" align="center"><img src="http://www.20cn.net/images/banner.gif"></td> </tr> </table> </td> </tr> <tr> <td width="559" height="23" align="center"> | <a href="http://www.20cn.net/ns/html/">最新文档</a> | <a href="http://www.20cn.net/ns/wz/">技术文摘</a> | <a href="http://www.20cn.net/ns/ld/">安全漏洞</a> | <a href="http://www.20cn.net/ns/cn/">菜鸟乐园</a> | <a href="http://www.20cn.net/ns/hk/">黑客进阶</a> | <a href="http://www.20cn.net/netdemon/">技术文库</a> | <a href="http://www.20cn.net/download/" target="_blank">软件下载</a> | <a href="http://www.20cn.net/club/" target="_blank">技术论坛</a> | </td> <td width="193" bgcolor="adcbef" height="23"> <div align="center"> <script language=JavaScript src="http://www.20cn.net/date.js"></script> </div> </td> </tr></table><!-- End Herder --> <table width="768" border="1" bordercolor="5296ff"> <tr> <td colspan="3" bordercolor="#FFFFFF"> <table width="100%" border="0" cellspacing="0" class="9p"> <tr> <td width="74%"> 您现在的位置 >> <a href="http://www.20cn.net/">返回首页</a></td> <td width="26%" align="center"> 文档发表时间:2002-08-01 </td> </table> </td> </tr> <tr valign="top"> <td colspan="3" bordercolor="#FFFFFF"> <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#adcbef" bordercolor="#adcbef"> <tr bgcolor="#F7F7F7" valign="top"> <td class="9p"> <table border="0" cellpadding="0" cellspacing="10" width="100%"> <tr> <td class="textinfo"> <p>makefile(4) <span style="font-size: 9pt">(阅览<font color="#FF0000"> <script src="http://www.20cn.net/cgi-bin/ns/count.cgi?id=20020801151014"></script> </font>次)</span></p> <p>makefile(4) <br><br> <br>作者:ermiao 发表时间:2002/07/09 09:16am<br> <br>标 题: 关于makefile(4) <br>2) GNU Make 工具 <br>2.1 基本 makefile 结构 <br>GNU Make 的主要工作是读进一个文本文件, makefile 。这个文 件里主要是有关哪些 文件(‘target’目的文件)是从哪些别的 文件(‘dependencies’依靠文件)中产 生的,用什么命令来进行 这个产生过程。有了这些信息, make 会检查磁碟上的文件,如果 目的文件的时间戳(该文件生成或被改动时的时间)比至少它的一 个依靠文件旧的话, make 就执行相应的命令,以便更新目的文件。 (目的文件不一定是最后的可执行档,它可以是任何一个文件。) makefile 一般被叫做“makefile”或“Makefile”。当然你可以 在 make 的命令行指 定别的文件名。如果你不特别指定,它会寻 找“makefile”或“Makefile”,因此使用这两个名字是最简单 的。 <br>一个 makefile 主要含有一系列的规则,如下: <br>例如,考虑以下的 makefile : <br>=== makefile 开始 === <br>myprog : foo.o bar.o <br>gcc foo.o bar.o -o myprog <br>foo.o : foo.c foo.h bar.h <br>gcc -c foo.c -o foo.o <br>bar.o : bar.c bar.h <br>gcc -c bar.c -o bar.o <br>=== makefile 结束 === <br>这是一个非常基本的 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’新),因此连接命令将被 执行。 <br> 希望到此,你可以看出使用 make 工具来建立程序的好处——前 一章中所有繁琐的检 查步骤都由 make 替你做了:检查时间戳。 你的源码文件里一个简单改变都会造成那 个文件被重新编译(因 为 .o 文件依靠 .c 文件),进而可执行文件被重新连接(因 为 .o 文件被改变了)。其实真正的得益是在当你改变一个 header 档的时候——你不 再需要记住那个源码文件依靠它,因为所有的 资料都在 makefile 里。 make 会很轻 松的替你重新编译所有那 些因依靠这个 header 文件而改变了的源码文件,如有需 要,再 进行重新连接。 当然,你要确定你在 makefile 中所写的规则是正确无误的,只 列出那些在源码文件 中被 #include 的 header 档…… <br> <br> <br></p> <p align="right"><a href="javascript:history.go(-1)" class="textinfo">返回 </a></p> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> <!-- Start Fooder --><p align="center" class="9p">建议您使用<font face="Verdana, Arial, Helvetica, sans-serif">IE</font>浏览器<font color="#FF0000" face="Verdana, Tahoma, Times New Roman, 宋体, MS Sans Serif">800×600</font>以上分辩率浏览以获最佳效果<br><br><font face="Verdana, Arial, Helvetica, sans-serif">20CN</font>网络安全小组版权所有<br><font face="Verdana, Tahoma, Times New Roman, 宋体, MS Sans Serif">Copyright ©2000-2003 20CN Network Security Group. All Rights Reserved.</font><br>如有任何问题及建议请写信至<a href="mailto:webmaster@20cn.net"><font color="#000000" face="Verdana, Tahoma, Times New Roman, 宋体, MS Sans Serif">webmaster@20cn.net</font></a></p><p align="center" class="9p"><img src="http://www.20cn.net/images/powerd-4.4bsd.gif" border="0"></p><p align="center" class="9p"><script language="JavaScript">var urodz = new Date("DEC 31, 2000");var now = new Date();var ile = now.getTime() - urodz.getTime();var dni = Math.floor(ile / (1000 * 60 * 60 * 24)) + 1;if (dni > 0) document.write("建站第 " + dni + " 天")else document.write("建站第 " + dni + " 天");</script><br></p></div></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -