atv312hu15n4:GNU make中文手册-第十三章 和其它版本的兼容
来源:百度文库 编辑:中财网 时间:2024/04/28 14:52:35
GNU make中文手册-第十三章 和其它版本的兼容作者: hew 发布日期: 2006-3-21 查看数: 98 出自: http://www.linuxsky.net 第十三章 和其它版本的兼容
--------------------------------------------------------------------------------
GNU make存在一些和其它版本make不兼容的功能,对于其它版本make的部分功能,GNU make也没有实现。POSIX.2 标准 (IEEE Standard 1003.2-1992)没有规定以下的这些特点需要在make中实现。
? 形如“FILE((ENTRY))”的目标代表静态库文件“FILE”的一个成员。它的成员不是用文件名,而是一个定义了连接符号“ENTRY”的.o文 件。GNU make没有支持它的原因是。这样的规则需要对静态库内部符号索引表需要熟悉。GNU make对静态库成员的更新可参考第十一章
? 以字符“~” 结尾的后缀在System V make的后缀规则中有特别的含义;它指的是对应目标文件的依赖文件是没有“~”的SCCS 文件。例如,System V的后缀规则“.c~.o”含义是:“N.o”是从SCCS文件“s.N.c”中提取的。为了完全覆盖,可能需要一系列的这样的规则。GNU make对它的处理是:使用两个模式规则从SCCS文件抽取一个文件,这两个模式规则形成一个隐含规则链。可参考 10.4 隐含规则链 一节
? 在System V 和 4.3 BSD make中,通过“VPATH”指定的目录搜寻(参考 4.5 目录搜索 一节)的文件,对应的文件名需要经过make改变后才加入对应规则到命令行中。GNU make使用自动环变量来实现这一功能。
? 在一些Unix的make中,自动化变量“$*”(参考 10.5.3 自动化变量 一节)作为规则的依赖时,具有奇怪的特征:它会被扩展为该规则的目标全名。它和GNU make中“$*”的含义完全不同。
? 在一些Unix的make中。会为所有目标搜索隐含规则(参考第十章),不仅仅是指对那些没有命令的目标。就是说如果我们的规则时这样的话:
foo.o:
cc -c foo.c
这种版本的make就会认为目标“foo.o”的依赖文件是“foo.c”。我们认为make的这种处理方法容易导致混乱。因为Makefile已经对目标有明确的定义,而在为目标搜索隐含规则是不合逻辑的。因此GNU make没有支持这种方式的规则处理。
? GNU make不包含任何编译以及预处理EFL程序的内嵌隐含规则。如果其它那种版本的make已经实现了这个特性,我们会很乐意地把它加入到GNU make支持的特性中。
? 在 SVR4版本的make中,一个没有命令的后缀规则被作为一个空命令规则来处理(参考 5.8 空命令 一节)。例如:
.c.a:
这个规则将覆盖内嵌的目标为“.c.a”的规则。
GNU make对这个规则的行为是为目标.a添加一个依赖类型.c。上述的行为在GNU make中的实现是:
.c.a: ;
? 一些版本的make 在调用shell时使用“-e”参数告诉shell,在除执行“make -k”(参考 9.6 使用make进行编译测试 一节)时,一旦命令行执行失败(返回状态非0)就立即退出。我们认为对于不同的命令的执行结果要视情况来处理。因此GNU make的没有支持这种方式。
--------------------------------------------------------------------------------
GNU make存在一些和其它版本make不兼容的功能,对于其它版本make的部分功能,GNU make也没有实现。POSIX.2 标准 (IEEE Standard 1003.2-1992)没有规定以下的这些特点需要在make中实现。
? 形如“FILE((ENTRY))”的目标代表静态库文件“FILE”的一个成员。它的成员不是用文件名,而是一个定义了连接符号“ENTRY”的.o文 件。GNU make没有支持它的原因是。这样的规则需要对静态库内部符号索引表需要熟悉。GNU make对静态库成员的更新可参考第十一章
? 以字符“~” 结尾的后缀在System V make的后缀规则中有特别的含义;它指的是对应目标文件的依赖文件是没有“~”的SCCS 文件。例如,System V的后缀规则“.c~.o”含义是:“N.o”是从SCCS文件“s.N.c”中提取的。为了完全覆盖,可能需要一系列的这样的规则。GNU make对它的处理是:使用两个模式规则从SCCS文件抽取一个文件,这两个模式规则形成一个隐含规则链。可参考 10.4 隐含规则链 一节
? 在System V 和 4.3 BSD make中,通过“VPATH”指定的目录搜寻(参考 4.5 目录搜索 一节)的文件,对应的文件名需要经过make改变后才加入对应规则到命令行中。GNU make使用自动环变量来实现这一功能。
? 在一些Unix的make中,自动化变量“$*”(参考 10.5.3 自动化变量 一节)作为规则的依赖时,具有奇怪的特征:它会被扩展为该规则的目标全名。它和GNU make中“$*”的含义完全不同。
? 在一些Unix的make中。会为所有目标搜索隐含规则(参考第十章),不仅仅是指对那些没有命令的目标。就是说如果我们的规则时这样的话:
foo.o:
cc -c foo.c
这种版本的make就会认为目标“foo.o”的依赖文件是“foo.c”。我们认为make的这种处理方法容易导致混乱。因为Makefile已经对目标有明确的定义,而在为目标搜索隐含规则是不合逻辑的。因此GNU make没有支持这种方式的规则处理。
? GNU make不包含任何编译以及预处理EFL程序的内嵌隐含规则。如果其它那种版本的make已经实现了这个特性,我们会很乐意地把它加入到GNU make支持的特性中。
? 在 SVR4版本的make中,一个没有命令的后缀规则被作为一个空命令规则来处理(参考 5.8 空命令 一节)。例如:
.c.a:
这个规则将覆盖内嵌的目标为“.c.a”的规则。
GNU make对这个规则的行为是为目标.a添加一个依赖类型.c。上述的行为在GNU make中的实现是:
.c.a: ;
? 一些版本的make 在调用shell时使用“-e”参数告诉shell,在除执行“make -k”(参考 9.6 使用make进行编译测试 一节)时,一旦命令行执行失败(返回状态非0)就立即退出。我们认为对于不同的命令的执行结果要视情况来处理。因此GNU make的没有支持这种方式。
hiweed 和gnu 是一个东西么
“发昏章第十三”是什么意思?
ad0809 中文手册
sharpoint中文手册
在计算机领域,如何翻译GNU和GPL?
GNU GPL授权软件和商业软件各自的优势?
A8N-SLI Premium中文手册
hold , get, put , make上词跟介词搭配 ,和他们搭配后的中文意思。
关于let和make
produce 和make ?
什么是GNU
GNU 是什么
GNU GRUB
什么是GNU?
请问一般船只在水上航行其纵摇角和横摇角大致为多少?有没有什么手册可以查询?
you make me wanna中文翻唱版
make a face 的中文意思
make love怎么读 中文发音
great hopes make great man. (中文谚语)
新火星人-3ds max 5白金手册是中文还是英文?
请问哪有OUTLOOK2003中文手册下载??
谁有whatsup gold的中文手册?
freebsd系统结构中文手册下载
哪里可以下载IR165中文维修手册