<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>As a Linux Novice Linux新手</title><link>http://blog.jingshanren.com/velvet/category/112.aspx</link><description>这个目录的初衷是做我自己的学习记录，技术性和介绍性兼有，但是并非写给某个特定对象，与其他部分小有区别。

如有建议，请多多指教:)

</description><managingEditor>velvet</managingEditor><dc:language>zh-CHS</dc:language><generator>.Text Version 0.958.2004.214</generator><item><dc:creator>velvet</dc:creator><title>Makefile的编写</title><link>http://blog.jingshanren.com/velvet/archive/2006/02/24/2102.aspx</link><pubDate>Fri, 24 Feb 2006 02:15:00 GMT</pubDate><guid>http://blog.jingshanren.com/velvet/archive/2006/02/24/2102.aspx</guid><wfw:comment>http://blog.jingshanren.com/velvet/comments/2102.aspx</wfw:comment><comments>http://blog.jingshanren.com/velvet/archive/2006/02/24/2102.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blog.jingshanren.com/velvet/comments/commentRss/2102.aspx</wfw:commentRss><trackback:ping>http://blog.jingshanren.com/velvet/services/trackbacks/2102.aspx</trackback:ping><description>&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;/SPAN&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;开始使用&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Linux&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;编程时，一个很讨厌的问题就是如何写&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Makefile&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;文件，由于在&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Linux&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;下不像在&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Windows&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;下那么熟悉，有那么多好的软件（也许是对&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Linux&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;孤陋寡闻了）。虽然象&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Kylix&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;和&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Anjuta&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;这样的集成编译环境，但是&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Kylix&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;太大太慢，用它编写&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;console&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;程序不亚于高射炮打蚊子&amp;#8212;&amp;#8212;大材小用，而&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Anjuta&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;又太不稳定，况且字体有那么难看。不说了，还是言归正传，看看&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Makefile&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;该如何编写。&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;BR&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US&gt;1. &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;简单的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;GCC&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;语法：&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;如果你只有一个文件（或者只有几个文件），那么就可以不写&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Makefile&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;文件（当然有&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Makefile&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;更加方便），用&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;gcc&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;直接编译就行了。在这里我们只介绍几个我经常用的几个参数，第一是&lt;/SPAN&gt; &lt;SPAN lang=EN-US&gt;&amp;#8220;-o&amp;#8221;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，它后面的参数表示要输出的目标文件，再一个是&lt;/SPAN&gt; &lt;SPAN lang=EN-US&gt;&amp;#8220;-c&amp;#8221;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，表示仅编译（&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Compile&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;），不连接（&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Make&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;），如果没有&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&amp;#8221;-c&amp;#8221;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;参数，那么就表示连接，如下面的几个命令：&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US&gt;gcc &amp;#8211;c test.c&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，表示只编译&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;test.c&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;文件，成功时输出目标文件&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;test.o&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US&gt;gcc &amp;#8211;c test.c &amp;#8211;o test.o &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，与上一条命令完全相同&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US&gt;gcc &amp;#8211;o test test.o&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，将&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;test.o&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;连接成可执行的二进制文件&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;test&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US&gt;gcc &amp;#8211;o test test.c&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，将&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;test.c&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;编译并连接成可执行的二进制文件&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;test&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US&gt;gcc test.c &amp;#8211;o test&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，与上一条命令相同&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US&gt;gcc &amp;#8211;c test1.c&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，只编译&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;test1.c&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，成功时输出目标文件&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;test1.o&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US&gt;gcc &amp;#8211;c test2.c&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，只编译&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;test2.c&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，成功时输出目标文件&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;test2.o&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US&gt;gcc &amp;#8211;o test test1.o test2.o&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，将&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;test1.o&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;和&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;test2.o&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;连接为可执行的二进制文件&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;test&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US&gt;gcc &amp;#8211;c test test1.c test2.c&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，将&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;test1.o&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;和&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;test2.o&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;编译并连接为可执行的二进制文件&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;test&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;注：如果你想编译&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;cpp&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;文件，那么请用&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;g++&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，否则会有类似如下莫名其妙的错误：&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT size=2&gt;cc3r3i2U.o(.eh_frame+0x12): undefined reference to `__gxx_personality_v0&amp;#8217;......&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;还有一个参数是&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&amp;#8221;-l&amp;#8221;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;参数，与之紧紧相连的是表示连接时所要的链接库，比如多线程，如果你使用了&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;pthread_create&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;函数，那么你就应该在编译语句的最后加上&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&amp;#8221;-lpthread&amp;#8221;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&amp;#8221;-l&amp;#8221;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;表示连接，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&amp;#8221;pthread&amp;#8221;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;表示要连接的库，注意他们在这里要连在一起写，还有比如你使用了光标库&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;curses&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，那么呢就应该在后面加上&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&amp;#8221;-lcurses&amp;#8221;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，比如下面的写法：&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT size=2&gt;gcc &amp;#8211;o test test1.o test2.o &amp;#8211;lpthread &amp;#8211;lcurses&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;当然&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;gcc&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;的参数我感觉有几百个，不过我们平时在&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;x86&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;机器上用的就这么些，况且这里也不是&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;GCC&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;教程，所以，就此打住。&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT size=2&gt;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US&gt;2. Makefile&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;基本语法&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;我这里没有&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Makefile&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;的详细设计书，只是凭着看别人的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Makefile&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;文件和一些网上的参考资料，作一些简单的介绍（我自己理解的，不对的地方还请各位老大们指出，鄙人将不甚感激）&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US&gt;2.1 &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;目标：&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;大家在看别人使用&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Makefile&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;文件时肯定经常见到有的人常用&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;make all, make install, make clean&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;等命令，同样只有一个&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Makefile&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;文件，那么&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;all&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;install&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;clean&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;参数是如何控制&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Makefile&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;文件的运行呢（这句话有问题，但我不知道该怎么说，大家能看懂我的意思，就放我一马吧）？在这里，如果向上面的命令如果能够正确运行的话，那么在&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Makefile&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;文件里一定有这样的几行，他们的开始一定是&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US&gt;all: &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;&lt;FONT size=2&gt;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US&gt;install: &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;&lt;FONT size=2&gt;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US&gt;clean: &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&amp;#215;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;当然也不尽然，因为&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;all&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;install&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;clean&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;我们可以用其他的变量来代替，但是着了我们就简单起见，就下定论了，各位别怪。&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;在上面提到的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;all&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;install&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;clean&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;等就是我们所说的目标。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;make all&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;命令，就告诉&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;make&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;我们将执行&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;all&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;所指定的目标。为了便于理解&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Make&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;程序的流程，我们给大家看一个与&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;gcc&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;毫无关系的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Makefile&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;文件：&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US&gt;# &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;＃表示&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Makefile&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;文件中的注释，下面是&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Makefile&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;文件的具体内容&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT size=2&gt;all:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;@echo you have typed command &amp;#8220;make all&amp;#8221;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT size=2&gt;clean:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;@echo you have typed command &amp;#8220;make clean&amp;#8221;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT size=2&gt;install:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;@ehco you have typed command &amp;#8220;make &lt;B&gt;$@&lt;/B&gt;&amp;#8221;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US&gt;#Makefile&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;文件结束&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;注意在这里，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;all:&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;clean:&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;install:&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;行要顶格些，而所有的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;@echo&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;前要加&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;tab&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;键来跳格缩进。下面是运行结果：&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;[root@xxx test]#cat Makefile&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;# &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;＃表示&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;Makefile&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;文件中的注释，下面是&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;Makefile&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;文件的具体内容&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;O /&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;all:&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;@echo you have typed command &amp;#8220;make all&amp;#8221;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;clean:&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;@echo you have typed command &amp;#8220;make clean&amp;#8221;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;install:&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;@ehco you have typed command &amp;#8220;make &lt;B&gt;$@&lt;/B&gt;&amp;#8221;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;[root@xxx test]#make all&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;you have typed command &amp;#8220;make all&amp;#8221;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;[root@xxx test]#make clean&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;you have typed command &amp;#8220;make clean&amp;#8221;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;[root@xxx test]#make &lt;B&gt;install&lt;/B&gt;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;you have typed command &amp;#8220;make &lt;B&gt;install&lt;/B&gt;&amp;#8221;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;[root@xxx test]#&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;不知大家注意到没有，我们在&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Makefile&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;文件里有一个符号&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-US&gt;$@&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，其中&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;$&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;表示变量名，其后的要当作变量来解释，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;$@&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;是&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Makefile&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;预先定义的一个变量，表示目标命令，比如在上面的文件里属于&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;install&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;目标，那么&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;$@&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;就表示&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;install&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，同样，如果你将&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;clean&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;目标下面的加引号的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&amp;#8221;make clean&amp;#8221;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;换为：&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&amp;#8221;make $@&amp;#8221;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，那么命令&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;make clean&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;的输出与原来是一摸一样的。大家可以下来试试。&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US&gt;2.2 &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;依赖&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;我们现在提出这样一个问题：我如何用一个&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;make&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;命令将替代所有的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;make all&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; make install&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;make clean&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;命令呢？当然我们可以象刚才那样写一个&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Makefile&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;文件：&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;[root@xxx test]#cat Makefile&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;# &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;＃表示&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;Makefile&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;文件中的注释，下面是&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;Makefile&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;文件的具体内容&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;O /&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;all:&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;@echo you have typed command &amp;#8220;make all&amp;#8221;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;clean:&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;@echo you have typed command &amp;#8220;make clean&amp;#8221;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;install:&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;@ehco you have typed command &amp;#8220;make &lt;B&gt;$@&lt;/B&gt;&amp;#8221;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;doall:&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;@echo you have typed command &amp;#8220;make &lt;B&gt;$@&lt;/B&gt;l&amp;#8221;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;@echo you have typed command &amp;#8220;make all&amp;#8221;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;@echo you have typed command &amp;#8220;make clean&amp;#8221;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;@ehco you have typed command &amp;#8220;make &lt;B&gt;install&lt;/B&gt;&amp;#8221;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;[root@xxx test]#make doall&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;you have typed command &amp;#8220;make &lt;B&gt;doall&lt;/B&gt;&amp;#8221;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;you have typed command &amp;#8220;make all&amp;#8221;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;you have typed command &amp;#8220;make clean&amp;#8221;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;you have typed command &amp;#8220;make &lt;B&gt;install&lt;/B&gt;&amp;#8221;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;[root@xxx test]#&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;在这里，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;doall:&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;目标有&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;4&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;调语句，他们都是连在一起并都是由&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;tab&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;键开始的。当然，这样能够完成任务，但是太笨了，我们这样来写：&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;[root@xxx test]#cat Makefile&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;# &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;＃表示&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;Makefile&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;文件中的注释，下面是&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;Makefile&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;文件的具体内容&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;O /&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;all:&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;@echo you have typed command &amp;#8220;make all&amp;#8221;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;clean:&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;@echo you have typed command &amp;#8220;make clean&amp;#8221;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;install:&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;@ehco you have typed command &amp;#8220;make &lt;B&gt;$@&lt;/B&gt;&amp;#8221;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;doall: all clean install&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;@echo you have typed command &amp;#8220;make &lt;B&gt;$@&lt;/B&gt;l&amp;#8221;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;[root@xxx test]#make doall&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;you have typed command &amp;#8220;make all&amp;#8221;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;you have typed command &amp;#8220;make clean&amp;#8221;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;you have typed command &amp;#8220;make &lt;B&gt;install&lt;/B&gt;&amp;#8221;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;you have typed command &amp;#8220;make &lt;B&gt;doall&lt;/B&gt;&amp;#8221;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;[root@xxx test]#&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;相信大家已经看清了&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;doall:&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;的运行方式，它先运行&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;all&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;目标，然后运行&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;clean&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;目标，然后是&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;install&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，最后是自己本身的目标，并且每个&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;$@&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;还是保持着各自的目标名称。&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;在这里，我们称&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;all, clean, install&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;为目标&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;doall&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;所依赖的目标，简称为&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;doall&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;的依赖。也就是你要执行&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;doall&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，请先执行他们（&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;all, clean, install&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;），最后在执行我的代码。&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;注意依赖一定是&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Makefile&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;里面的目标，否则你非要运行，结局是注定的：&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;[root@xxx test]#cat Makefile&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;all:&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;@echo you have typed command &amp;#8220;make all&amp;#8221;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.85pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;xxx: all WAHAHA:&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;[root@xxx test]make xxx&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;you have typed command &amp;#8220;make all&amp;#8221;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;make: *** No rule to make target &amp;#8216;WAHAHA&amp;#8217;, needed by `xxx&amp;#8217;,&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;B&gt;Stop&lt;/B&gt;.&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;【轻松一下】我们能否利于&amp;#8220;相互依赖&amp;#8221;来作弄一下&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;make&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;？&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;[root@xxx test]#cat Makefile&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;tar1: tar2&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;tar2: tar1&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;@echo this line cann&amp;#8217;t be shown on you screen!&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;[root@xxx test]make tar1&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;make: Circular tar2 &amp;lt;- tar1 dependency dropped.&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;&lt;FONT size=2&gt;呵呵，骗不了的&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US&gt;3&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;．实战：&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;有了上面的说明，我们就可以开始写一些弱智一些地&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Makefile&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;文件了。比如我们有如下的文件：&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT size=2&gt;tmp/&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;+---- include/&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;|&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;+---- f1.h&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;|&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;+----f2.h&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;+----f1.c&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;+----f2.c &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;+---main.c&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;其中&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;f1.c&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;中&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;#include &amp;#8220;include/f1.h&amp;#8221;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;f2.c&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;中&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;#include&amp;#8221;include/f2.h&amp;#8221;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;main.c&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;中又&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;#include&amp;#8221;include/f1.h&amp;#8221;, #include&amp;#8221;include/f2.h&amp;#8221;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，主函数在&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;main.c&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;中，要将他们联合起来编译为目标为&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;testmf&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;的文件，我们就可以按下面的方式写（当然是弱智的）：&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;[root@xxx test]#cat Makefile&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;main: main.o f1.o f2.o&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;gcc &amp;#8211;o testmf main.o f1.o f2.o&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;f1.o: f1.c&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;gcc &amp;#8211;c &amp;#8211;o file1.o file1.c&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;f2.o: f2.c&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;gcc &amp;#8211;c &amp;#8211;o file2.o file2.c&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;main.o:（&lt;FONT color=#000080&gt;&lt;STRONG&gt;注：原文没加冒号，我怀疑是笔误&lt;/STRONG&gt;&lt;/FONT&gt;）&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;gcc &amp;#8211;c &amp;#8211;o main.o main.c&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;clean:&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;rm &amp;#8211;rf f1.o f2.o main.o testmf&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;[root@xxx test]make&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;gcc &amp;#8211;c &amp;#8211;o main.o main.c&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;gcc &amp;#8211;c &amp;#8211;o file1.o file1.c&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;gcc &amp;#8211;c &amp;#8211;o file2.o file2.c&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;gcc &amp;#8211;o testmf main.o f1.o f2.o&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;[root@xxx test]ls&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;SPAN lang=EN-US style="moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial"&gt;&lt;FONT size=2&gt;f1.c &lt;B&gt;f1.o&lt;/B&gt; f2.c &lt;B&gt;f2.o&lt;/B&gt; main.c &lt;B&gt;main.o&lt;/B&gt; &lt;SPAN&gt;include/&lt;/SPAN&gt; &lt;SPAN&gt;testmf&lt;/SPAN&gt;&lt;O /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;如果你的程序没有问题的话，就应该可以执行了&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;./testmf&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-INDENT: 17.95pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;大家可能发现问题了：对目标文件&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;f1.o f2.o&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;和&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;main.o&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，他们的写法是如此的类似，我们能够将他们一块写？有的，不过今天没时间了，以后再写吧。&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src ="http://blog.jingshanren.com/velvet/aggbug/2102.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>