📄 make-13.html
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>第十三章 和其它版本的兼容</title>
<style>
<!--
h1
{margin-top:12.0pt;
margin-right:0pt;
margin-bottom:12.0pt;
margin-left:21.6pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-21.6pt;
page-break-after:avoid;
tab-stops:list 21.6pt;
text-autospace:none;
font-size:16.0pt;
font-family:Arial;
}
p.MsoNormal
{mso-style-parent:"";
margin-bottom:.0001pt;
text-autospace:none;
font-size:10.0pt;
font-family:"Times New Roman";
margin-left:0pt; margin-right:0pt; margin-top:0pt}
-->
</style>
</head>
<body>
<h1 align="center" style="text-align: center; text-indent: 0pt; margin-left: 9.9pt">
<a name="chapter_13"><span style="font-size: 18.0pt; font-family: 楷体_GB2312">
第十三章</span><span style="font-size: 18.0pt"> </span>
<span style="font-size: 18.0pt; font-family: 楷体_GB2312">和其它版本的兼容</span></a></h1>
<span lang="EN-US" style="font-size: 12.0pt; line-height: 150%; color: #222222">
<hr size="1" width="100%" align="center"></span>
<p class="MsoNormal" style="text-align: justify; text-justify: inter-ideograph; text-indent: 24.0pt; line-height: 150%; text-autospace: ideograph-numeric ideograph-other">
<span lang="EN-US" style="font-size: 12.0pt; line-height: 150%; font-family: Arial; color: black">
GNU make</span><span style="font-size: 12.0pt; line-height: 150%; font-family: 楷体_GB2312; color: black">存在一些和其它版本</span><span lang="EN-US" style="font-size: 12.0pt; line-height: 150%; font-family: Arial; color: black">make</span><span style="font-size: 12.0pt; line-height: 150%; font-family: 楷体_GB2312; color: black">不兼容的功能,其它版本</span><span lang="EN-US" style="font-size: 12.0pt; line-height: 150%; font-family: Arial; color: black">make</span><span style="font-size: 12.0pt; line-height: 150%; font-family: 楷体_GB2312; color: black">具有的部分功能,在</span><span lang="EN-US" style="font-size: 12.0pt; line-height: 150%; font-family: Arial; color: black">GNU
make</span><span style="font-size: 12.0pt; line-height: 150%; font-family: 楷体_GB2312; color: black">中也没有实现。</span><span lang="EN-US" style="font-size: 12.0pt; line-height: 150%; font-family: Arial; color: black">POSIX.2
</span>
<span style="font-size: 12.0pt; line-height: 150%; font-family: 楷体_GB2312; color: black">
标准</span><span style="font-size: 12.0pt; line-height: 150%; font-family: Arial; color: black">
</span>
<span style="font-size: 12.0pt; line-height: 150%; font-family: 楷体_GB2312; color: black">
(</span><span lang="EN-US" style="font-size: 12.0pt; line-height: 150%; font-family: Arial; color: black">IEEE
Standard 1003.2-1992</span><span style="font-size: 12.0pt; line-height: 150%; font-family: 楷体_GB2312; color: black">)没有规定以下的这些特点需要在</span><span lang="EN-US" style="font-size: 12.0pt; line-height: 150%; font-family: Arial; color: black">make</span><span style="font-size: 12.0pt; line-height: 150%; font-family: 楷体_GB2312; color: black">中实现。</span></p>
<p class="MsoNormal" style="text-align: justify; text-justify: inter-ideograph; text-indent: -21.0pt; line-height: 150%; text-autospace: ideograph-numeric ideograph-other; margin-left: 21.0pt">
<span lang="EN-US" style="font-size: 12.0pt; line-height: 150%; font-family: Wingdings; color: black">
Ø<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> </span></span><span style="font-size: 12.0pt; font-family: 楷体_GB2312; color: black">形如“</span><span lang="EN-US" style="font-size: 12.0pt; font-family: Arial; color: black">FILE((ENTRY))</span><span style="font-size: 12.0pt; font-family: 楷体_GB2312; color: black">”的目标代表静态库文件“</span><span lang="EN-US" style="font-size: 12.0pt; font-family: Arial; color: black">FILE</span><span style="font-size: 12.0pt; font-family: 楷体_GB2312; color: black">”的一个成员。它的成员不是用文件名,而是一个定义了连接符号“</span><span lang="EN-US" style="font-size: 12.0pt; font-family: Arial; color: black">ENTRY</span><span style="font-size: 12.0pt; font-family: 楷体_GB2312; color: black">”的</span><span lang="EN-US" style="font-size: 12.0pt; font-family: Arial; color: black">.o</span><span style="font-size: 12.0pt; font-family: 楷体_GB2312; color: black">文件。</span><span lang="EN-US" style="font-size: 12.0pt; font-family: Arial; color: black">GNU
make</span><span style="font-size: 12.0pt; font-family: 楷体_GB2312; color: black">没有支持它的原因是:书写这样的规则要求书写者对静态库内部符号索引表熟悉。</span><span lang="EN-US" style="font-size: 12.0pt; font-family: Arial; color: black">GNU
make</span><span style="font-size: 12.0pt; font-family: 楷体_GB2312; color: black">对静态库成员的更新可参考</span><span style="font-size: 12.0pt; font-family: Arial; color: black">
</span>
<span style="font-size: 12.0pt; line-height: 150%; font-family: 楷体_GB2312; color: black">
<a href="make-11.html">第十一章</a></span></p>
<p class="MsoNormal" style="text-align: justify; text-justify: inter-ideograph; text-indent: -21.0pt; line-height: 150%; text-autospace: ideograph-numeric ideograph-other; margin-left: 21.0pt">
<span lang="EN-US" style="font-size: 12.0pt; line-height: 150%; font-family: Wingdings; color: black">
Ø<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman">
</span></span>
<span style="font-size: 12.0pt; font-family: 楷体_GB2312; color: black">以字符“</span><span lang="EN-US" style="font-size: 12.0pt; font-family: Arial; color: black">~</span><span style="font-size: 12.0pt; font-family: 楷体_GB2312; color: black">”</span><span style="font-size: 12.0pt; font-family: Arial; color: black">
</span><span style="font-size: 12.0pt; font-family: 楷体_GB2312; color: black">
结尾的后缀在</span><span lang="EN-US" style="font-size: 12.0pt; font-family: Arial; color: black">System
V make</span><span style="font-size: 12.0pt; font-family: 楷体_GB2312; color: black">的后缀规则中有特别的含义;它指的是对应目标文件的依赖文件是没有“</span><span lang="EN-US" style="font-size: 12.0pt; font-family: Arial; color: black">~</span><span style="font-size: 12.0pt; font-family: 楷体_GB2312; color: black">”的</span><span lang="EN-US" style="font-size: 12.0pt; font-family: Arial; color: black">SCCS
</span><span style="font-size: 12.0pt; font-family: 楷体_GB2312; color: black">
文件。例如,</span><span lang="EN-US" style="font-size: 12.0pt; font-family: Arial; color: black">System
V</span><span style="font-size: 12.0pt; font-family: 楷体_GB2312; color: black">的后缀规则“</span><span lang="EN-US" style="font-size: 12.0pt; font-family: Arial; color: black">.c~.o</span><span style="font-size: 12.0pt; font-family: 楷体_GB2312; color: black">”含义是:“</span><span lang="EN-US" style="font-size: 12.0pt; font-family: Arial; color: black">N.o</span><span style="font-size: 12.0pt; font-family: 楷体_GB2312; color: black">”是从</span><span lang="EN-US" style="font-size: 12.0pt; font-family: Arial; color: black">SCCS</span><span style="font-size: 12.0pt; font-family: 楷体_GB2312; color: black">文件“</span><span lang="EN-US" style="font-size: 12.0pt; font-family: Arial; color: black">s.N.c</span><span style="font-size: 12.0pt; font-family: 楷体_GB2312; color: black">”中提取的。为了完全覆盖,可能需要一系列的这样的规则。</span><span lang="EN-US" style="font-size: 12.0pt; font-family: Arial; color: black">GNU
make</span><span style="font-size: 12.0pt; font-family: 楷体_GB2312; color: black">对它的处理是:使用两个模式规则从</span><span lang="EN-US" style="font-size: 12.0pt; font-family: Arial; color: black">SCCS</span><span style="font-size: 12.0pt; font-family: 楷体_GB2312; color: black">文件抽取一个文件,这两个模式规则形成一个隐含规则链。</span><span style="font-size: 12.0pt; line-height: 150%; font-family: 楷体_GB2312; color: black">可参考</span><span style="font-size: 12.0pt; line-height: 150%; font-family: Arial; color: black">
<span lang="EN-US">
<a style="color: blue; text-decoration: underline; text-underline: single" href="make-10.html#_gnu_make_10.4">
10.4<span lang="EN-US" style="font-family: 楷体_GB2312"> 隐含规则链</span></a> </span>
</span>
<span style="font-size: 12.0pt; line-height: 150%; font-family: 楷体_GB2312; color: black">
一节</span></p>
<p class="MsoNormal" style="text-align: justify; text-justify: inter-ideograph; text-indent: -21.0pt; line-height: 150%; text-autospace: ideograph-numeric ideograph-other; margin-left: 21.0pt">
<span lang="EN-US" style="font-size: 12.0pt; line-height: 150%; font-family: Wingdings; color: black">
Ø<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman">
</span></span>
<span style="font-size: 12.0pt; line-height: 150%; font-family: 楷体_GB2312; color: black">
在</span><span lang="EN-US" style="font-size: 12.0pt; line-height: 150%; font-family: Arial; color: black">System
V </span>
<span style="font-size: 12.0pt; line-height: 150%; font-family: 楷体_GB2312; color: black">
和</span><span lang="EN-US" style="font-size: 12.0pt; line-height: 150%; font-family: Arial; color: black">
4.3 BSD make</span><span style="font-size: 12.0pt; line-height: 150%; font-family: 楷体_GB2312; color: black">中,通过“</span><span lang="EN-US" style="font-size: 12.0pt; line-height: 150%; font-family: Arial; color: black">VPATH</span><span style="font-size: 12.0pt; line-height: 150%; font-family: 楷体_GB2312; color: black">”指定的目录搜寻(参考</span><span style="font-size: 12.0pt; line-height: 150%; font-family: Arial; color: black">
<span lang="EN-US">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -