⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gunmake.htm

📁 gnumake的电子文档
💻 HTM
📖 第 1 页 / 共 5 页
字号:
	font-family:Symbol;}
@list l28
	{mso-list-id:2118519092;
	mso-list-type:hybrid;
	mso-list-template-ids:1571715596 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l28:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F06C;
	mso-level-tab-stop:21.0pt;
	mso-level-number-position:left;
	margin-left:21.0pt;
	text-indent:-21.0pt;
	font-family:Wingdings;}
@list l29
	{mso-list-id:2123529353;
	mso-list-type:hybrid;
	mso-list-template-ids:-961093682 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l29:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F06C;
	mso-level-tab-stop:57.0pt;
	mso-level-number-position:left;
	margin-left:57.0pt;
	text-indent:-21.0pt;
	font-family:Wingdings;}
@list l30
	{mso-list-id:2141999295;
	mso-list-type:hybrid;
	mso-list-template-ids:-296046676 1916971872 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l30:level1
	{mso-level-text:%1、;
	mso-level-tab-stop:60.0pt;
	mso-level-number-position:left;
	margin-left:60.0pt;
	text-indent:-18.0pt;}
ol
	{margin-bottom:0cm;}
ul
	{margin-bottom:0cm;}
-->
</style>
</head>

<body lang=ZH-CN link=blue vlink=purple style='tab-interval:21.25pt;text-justify-trim:
punctuation'>

<div class=Section1 style='layout-grid:15.6pt'>

<h1 align=center style='text-align:center'><span lang=EN-US style='font-family:
宋体'>GNU Make 使用手册(中译版)<o:p></o:p></span></h1>

<p class=MsoNormal><span style='font-family:宋体'>翻译:于凤昌<span lang=EN-US><o:p></o:p></span></span></p>

<p class=MsoNormal><span style='font-family:宋体'>译者注:本人在阅读<span lang=EN-US>Linux源代码过程中发现如果要全面了解Linux的结构、理解Linux的编程总体设计及思想必须首先全部读通Linux源代码中各级的Makefile文件。目前,在网上虽然有一些著作,但都不能全面的解释Linux源代码中各级的Makefile文件,因此本人认真阅读了GNU
Make 使用手册(3.79)版原文,在此基础上翻译了该手册,以满足对Linux源代码有兴趣或者希望采用GCC编写程序但对缺乏GNU Make全面了解之人士的需要。本人是业余爱好不是专业翻译人士,如果有问题请通过电子信箱与我联系共同商讨,本人的E-mail为:<a
href="mailto:yfc70@public2.lyptt.ha.cn">yfc70@public2.lyptt.ha.cn</a> 。</span></span><b><span
style='font-size:12.0pt;mso-bidi-font-size:10.0pt;font-family:宋体'>注意在文章中出现的斜体加粗字表示章节。</span></b><span
lang=EN-US style='font-family:宋体'><o:p></o:p></span></p>

<h1 align=center style='text-align:center'><span lang=EN-US style='font-family:
宋体'>GNU </span><code><span lang=EN-US style='font-size:10.0pt;font-family:宋体;
mso-bidi-font-family:"Times New Roman"'>make</span></code><span lang=EN-US
style='font-family:宋体'> Version 3.79<o:p></o:p></span></h1>

<h2><span lang=EN-US style='font-family:宋体'>April 2000<o:p></o:p></span></h2>

<p class=MsoNormal align=center style='text-align:center'><span lang=EN-US
style='font-family:宋体'>Richard M. Stallman and Roland McGrath<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:18.0pt'><b><span lang=EN-US
style='font-size:18.0pt;mso-bidi-font-size:10.0pt;font-family:宋体'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></b></p>

<h1><span style='font-family:宋体'>目录<span lang=EN-US><o:p></o:p></span></span></h1>

<p class=MsoNormal style='margin-left:18.0pt'><span lang=EN-US
style='font-family:宋体'>1 <a href="#_1_Make_概述"><code><span style='mso-ansi-font-size:
10.5pt;mso-ascii-font-family:宋体;mso-fareast-font-family:宋体;mso-hansi-font-family:
宋体'>make概述</span></code></a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>1.1 <a href="#_1.1怎样阅读本手册">怎样阅读本手册</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>1.2 <a href="#_1.2问题和BUG">问题和BUG</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:18.0pt'><span lang=EN-US
style='font-family:宋体'>2 <a href="#_2_Makefile文件介绍">Makefile文件介绍</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>2.1 <a href="#_2.1_规则的样式">规则的格式</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>2.2<a href="#_2.2一个简单的Makefile文件">一个简单的Makefile文件</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>2.3<a href="#_2.3_make是处理makefile文件的过程">make处理Makefile文件的过程</a>
<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>2.4<a href="#_2.4使用变量简化makefile文件">使用变量简化Makefile文件</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>2.5<a href="#_2.5_让make推断命令">让make推断命令</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>2.6<a href="#_2.6_另一种风格的makefile文件">另一种风格的Makefile文件</a>
<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>2.7<a href="#_2.7_在目录中删除文件的规则">在目录中删除文件的规则</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l24 level1 lfo28;
tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-family:
宋体'>3<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]><span lang=EN-US style='font-family:宋体'><a
href="#_3_编写makefile文件">编写Makefile文件</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>3.1<a href="#_3.1_makefile文件的内容">Makefile文件的内容</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>3.2<a href="#_3.2_makfile文件名字的规定">Makefile文件的命名</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>3.3<a href="#_3.3_包含其它的makefile文件">包含其它的Makefile文件</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>3.4<a href="#_3.4_环境变量makefiles"><code><span
style='mso-ansi-font-size:10.5pt;mso-ascii-font-family:宋体;mso-fareast-font-family:
宋体;mso-hansi-font-family:宋体'>变量MAKEFILES</span></code></a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>3.5<a href="#_3.5_makefile文件重新生成的过程">Makefile文件重新生成的过程</a>
<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>3.6<a href="#_3.6_解决其它makefile文件中的冲突">重载其它Makefile文件</a>
<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>3.7<a href="#_3.7_make读取makefile文件的过程">make读取Makefile文件的过程</a>
<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:18.0pt'><span lang=EN-US
style='font-family:宋体'>4 <a href="#_4编写规则">编写规则</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>4.1<a href="#_4.1规则的语法">规则的语法</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>4.2<a href="#_4.2_在文件名中使用通配符">在文件名中使用通配符</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:90.0pt'><span lang=EN-US
style='font-family:宋体'>4.2.1<a href="#_4.2.1通配符的例子">通配符例子</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:90.0pt'><span lang=EN-US
style='font-family:宋体'>4.2.2<a href="#_4.2.2使用通配符的常见错误">使用通配符的常见错误</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:90.0pt'><span lang=EN-US
style='font-family:宋体'>4.2.3<a href="#_4.2.3通配符函数"><code><span
style='mso-ansi-font-size:10.5pt;mso-ascii-font-family:宋体;mso-fareast-font-family:
宋体;mso-hansi-font-family:宋体'>函数wildcard</span></code></a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>4.3<a href="#_4.3在不同文件夹中搜寻依赖">在目录中搜寻依赖</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:90.0pt'><span lang=EN-US
style='font-family:宋体'>4.3.1<a href="#_4.3.1_VPATH:所有依赖的搜寻路径">VPATH:所有依赖的搜寻路径</a>
<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:90.0pt'><span lang=EN-US
style='font-family:宋体'>4.3.2<a href="#_4.3.2_vpath指令">vpath指令</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:90.0pt'><span lang=EN-US
style='font-family:宋体'>4.3.3<a href="#_4.3.3文件夹的搜寻过程">目录搜寻过程</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:90.0pt'><span lang=EN-US
style='font-family:宋体'>4.3.4<a href="#_4.3.4_为文件夹搜寻编写shell命令">编写搜寻目录的shell命令</a>
<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:90.0pt'><span lang=EN-US
style='font-family:宋体'>4.3.5<a href="#_4.3.5_文件夹搜寻和隐含规则">目录搜寻和隐含规则</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:90.0pt'><span lang=EN-US
style='font-family:宋体'>4.3.6<a href="#_4.3.6_连接库的文件夹搜寻">连接库的搜寻目录</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>4.4<a href="#_4.4假想目标">假想目标</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>4.5<a href="#_4.5_没有命令或依赖的规则">没有命令或依赖的规则</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>4.6<a href="#_4.6使用空目标文件记录事件">使用空目录文件记录事件</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>4.7<a href="#_4.7_内部使用的一些特殊目标名">内建的特殊目标名</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>4.8<a href="#_4.8_具有多个目标的规则">具有多个目标的规则</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>4.9<a href="#_4.9_具有多条规则的目标">具有多条规则的目标</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>4.10<a href="#_4.10_静态格式规则">静态格式规则</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:90.0pt'><span lang=EN-US
style='font-family:宋体'>4.10.1<a href="#_4.10.1_静态格式规则的语法">静态格式规则的语法</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:90.0pt'><span lang=EN-US
style='font-family:宋体'>4.10.2<a href="#_4.10.2静态格式规则和隐含规则">静态格式规则和隐含规则</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>4.11<a href="#_4.11双冒号规则">双冒号规则</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>4.12<a href="#_4.12_自动生成依赖">自动生成依赖</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:18.0pt'><span lang=EN-US
style='font-family:宋体'>5 <a href="#_5在规则中使用命令">在规则中使用命令</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>5.1<a href="#_5.1_命令回显">命令回显</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>5.2<a href="#_5.2命令的执行">执行命令</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>5.3<a href="#_5.3_并行执行">并行执行</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>5.4<a href="#_5.4命令错误">命令错误</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>5.5<a href="#_5.5中断或关闭make"><code><span
style='mso-ansi-font-size:10.5pt;mso-ascii-font-family:宋体;mso-fareast-font-family:
宋体;mso-hansi-font-family:宋体'>中断或关闭make</span></code></a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>5.6<a href="#_5.6_make的递归调用"><code><span
style='mso-ansi-font-size:10.5pt;mso-ascii-font-family:宋体;mso-fareast-font-family:
宋体;mso-hansi-font-family:宋体'>递归调用make</span></code></a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:90.0pt'><span lang=EN-US
style='font-family:宋体'>5.6.1<a href="#_5.6.1_变量MAKE的工作方式">变量MAKE的工作方式</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:90.0pt'><span lang=EN-US
style='font-family:宋体'>5.6.2<a href="#_5.6.2与子make的通讯变量"><code><span
style='mso-ansi-font-size:10.5pt;mso-ascii-font-family:宋体;mso-fareast-font-family:
宋体;mso-hansi-font-family:宋体'>与子make通讯的变量</span></code></a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:90.0pt'><span lang=EN-US
style='font-family:宋体'>5.6.3<a href="#_5.6.3与子make的通讯选项"><code><span
style='mso-ansi-font-size:10.5pt;mso-ascii-font-family:宋体;mso-fareast-font-family:
宋体;mso-hansi-font-family:宋体'>与子make通讯的选项</span></code></a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:90.0pt'><span lang=EN-US
style='font-family:宋体'>5.6.4<a href="#_5.6.4_‘--print-directory’选项">`--print-directory'选项</a>
<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>5.7<a href="#_5.7定义固定次序的命令">定义固定次序命令</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>5.8<a href="#_5.8_使用空命令">使用空命令</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo29;
tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-family:
宋体'>6<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]><span lang=EN-US style='font-family:宋体'><a
href="#_6_使用变量">使用变量</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>6.1<a href="#_6.1_变量引用基础">变量引用基础</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>6.2<a href="#_6.2_变量的两个特色">变量的两个特色</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>6.3<a href="#_6.3变量引用高级技术">变量高级引用技术</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:90.0pt'><span lang=EN-US
style='font-family:宋体'>6.3.1<a href="#_6.3.1替换引用">替换引用</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:90.0pt'><span lang=EN-US
style='font-family:宋体'>6.3.2<a href="#_6.3.2嵌套变量引用(计算的变量名)">嵌套变量引用</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>6.4<a href="#_6.4变量的取值">变量取值</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>6.5<a href="#_6.5设置变量">设置变量</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>6.6<a href="#_6.6_为变量追加更多的文本">为变量值追加文本</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US
style='font-family:宋体'>6.7<a href="#_6.7_override指令">override指令</a> <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:54.0pt'><span lang=EN-US

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -