资料下载网
首页 计算机 考试教辅
GNU make中文手册 pdf电子书免费下载,百度云
首页 > 计算机 > 计算机网络/服务器 > GNU make中文手册 pdf电子书免费下载,百度云

《GNU make中文手册》pdf电子书免费下载


下载方式一:

百度网盘下载地址:https://pan.baidu.com/s/1zskDqxlKd2dMYC00OBAZ6Q
百度网盘密码:1111

下载方式二:

http://ziliaoshare.cn/Download/ad_123527_pd_GNUmakeZWSC.zip

 


GNU make中文手册

作者:empty

页数:167

出版社:empty

《GNU make中文手册》介绍

本文比较完整的讲述GNUmake工具, 涵盖GNUmake的用法、语法。同时重点讨论如何为一个工程编写Makefile.作为一个Linux程序员, make工具的使用以及编写Makefile是必需的。系统、详细讲述make的中文资料比较少, 出于对广大中文Linux er的支持, 本人在工作之余,花了18个多月时间完成对“info make”的翻译整理, 完成这个中文版的书册.本书开不是一个语言的翻译版本, 其中对GNUmake的一些语法和用法根据我个人的工作经验进行了一些详细分析和说明, 也加入了一些个人的观点和实践总结.本书的所有的例子都可以在支持V 3.8版本的GNUmake的系统中正确执行。由于个人水平限制,本文在一些地方存在描述不准确之处。恳请大家在阅读过程中,提出您宝贵的意见,也是对我个人的帮助,我的个人电子邮箱地址:xhbdahai@126.com。非常愿意和大家交流!共同学习.阅读本书之前, 应该对GNU的工具链和Linux中的一些常用工具有所了解。诸如:gcc、as、ar、ld、yacc等.在书写Makefile时, 需要能够理解一些shell脚本程序.这些工具是维护一个工程的基础工具。如果对这些工具的使用不是很熟恶,可参考相关资料。1.如果之前你对GNUmake没有了解、而当前也不想深入的学习GNUmake的读者, 你只2.如果你已经对GNUmake比较熟悉, 可能你更需要关心此版本的一些特点、新增的功能3.之前你对GNUmake没有多少概念、或者刚开始接触, 本身又想成为一个Linux下的专2004年9月11日6业程序员,那么建议:完整学习本文的各个章节,包括了基础知识和高级用法、技巧,它会为你以后在Linux下的工程开发、工程管理提供非常有用的帮助。谢谢!徐海兵

第一章:概述

1.1 Make之前基本知识

1.1.1概述Linux环境下的程序员如果不会使用GNUmake来构建和管理自己的工程, 应该不能算是一个合格的专业程序员, 至少不能称得上是Linux程序员, 在Linux环境下使用GNU的make丁具能够比较容易的构建一个属于你自已的工程,整个工程的编译只需要一个命今就可以完成编译、连接以至于最后的执行, 不过这需要我们投入一些时间去完成一个或者多个称之为Makefile文件的编写。此文件正是make正常工作的基础。所要完成的Makefile文件描述了核个工的编译、连接等规则。其中包括:工程中的哪些源文件需要编译以及如何编译、需要创建那些库文件以及如何创建这些库文件、如何最后产生我们想要得可执行文件。尽管看起来可能是很复杂的事情, 但是为工程编写Makefile的好处是能够使用一行命令米完成“自动化编译 , 一旦提供一个(多个) 正确的Makefile。编译整个工程你所要做的唯一的一件事就是在shell提示符下输入make命令.整个工程完全自动编译, 极大提高了效率,make是一个命令工具, 它解释Makefile中的指令(应该说是规则) , Makefile中描述了工程中所有文件的编译顺序、规则.Makefile有自己的书写格式、关键字、函数。像C语言有自己的格式、关键字和函数一样。而凡在Makefile中可以使用shell所提供的任何命令来完成你想要的工作。Makefile(在其它的系统上可能是另外的文件名) 在绝大多数的IDE开发环境中都在使用,已经成为一种工程的编译方法。

就是希望能使众多的Linux环境下的程序员能够比较容易的掌握和学会使用它, 本文所要介绍的是目前, 系统完整的介绍make上具和如何编写Makefile的中文文档比较少, 我整理这个文档GNU的make, 采用RedHat FC 3(包括最新发布的GNULinux系统) 所集成的GUN make工具.make版本信息如下:当然make工具不仅仅是用来管理C语言工程的, 那些编译器只要能够在shell下运行的语言所构编译:把高级语言书写的代码转换为机器可识别的机器指令,编译高级语言后生成的指令虽然为了和规则的目标文件相区别。本文将编译高级语言后生成的目标文件成为.o文件。链接:将多.0文件,或者.o文件和库文件链接成为可被操作系统执行的可执行程序。链接器不静态库:又称为文档文件(Archive File) 。它是多个.0文件的集合.Linux中静态库文件的后共享库:也是多个.0文件的集合,但是这些.o文件时有编译器按照一种特殊的方式生成。对象参考in fold了解更加详细的关于ld的说明和用法。make通过比较对应文件(规则的目标和依赖, ) 的最后修改时间, 来决定哪些文件需要更新、If you have problems with GNU`make'or think you've found a bug.please report it to the developers;本文后续所用到的所有例子都采用C语言书写的源程序,因为它是日前最普遍使用的一种语言。建的工程都可以使用make工具来管理。而且也可以使用make工具来做一些其它的事。例如,有这样的需求:当我们修改了某个或者某些文件后,需要能够根据修故的文件来自动对相关文件进行重建或者更新。那么应该考虑使用GNUmake工具, GNUmake工具为我们实现这个目的提供了北常有利的支持。工程中根据源文件的修改情况来进行代码的编译正是使用了make的这个特征。make执行时, 根据Makefile的规则检查文件的修改情况, 决定是否执行定义的动作(那些修改过的文件将会被重新编译) .这是GNUmake的执行依据.

1.1.2准备知识

在开始我们关于make的讨论之前, 首先需要明确些基本概念:可被机器识别,但是还不能被执行。编译时,编译器检查高级语言的语法、函数与变量的声明是否正确。只有所有的语法正确、相关变量定义正确编译器就可以编译出中间月标文件,通常,一个高级语言的源文件都可对应一个目标文件。目标文件在Linux中默认后缀为“.0”(如“foo.c”的目标文件为“foo.o”) .

检查函数所在的源文件,只检查所有.o文件中的定义的符号。将.o文件中使用的函数和其它.o或者库文件中的相关符号进行合并, 最后生成一个可执行的程序。“ld”是GNU的链接器。缀为“.a”.静态库中的各个成员(.0文件)没有特殊的存在格式,仅仅是个.0文件的集合,使用“ar”工具维护和管理静态库。

模块的各个成员的地址(变量引用和函数调用)都是相对地址。因此在程序运行时,可动态加载库文件和执行共享的模块(多个程序可以共享使用库中的某一个模块),

1.2GNU make介绍

make在执行时, 需要一个命名为Makefile的文件, 这个文件告诉make以何种方式编译源代码和链接程序。典型地,可执行文件可巾一些.0文件按照一定的顺序生成或者更新,如果在你的工程中已经存在一个或者多个正确的Makefile.当对工程中的若干源文件修改以后, 需要根据修改来更新可执行文件或者库文件, 正如前面提到的你只需要在shell下执行“make .make会自动根据修改情况完成源文件的对应.o文件的更新、库文件的更新、最终的可执行程序的更新,那些文件不需要更新。对需要更新的文件make就执行数据库中所记录的相应命令(在make读取Makefile以后会建立一个编译过程的描述数据库, 此数据库中记录了所有各个文件之间的相工关系, 以及它们的关系描述) 来重建它, 对丁不需要重建的文件make什么也不做。而且可以通过make的命令行选项来指定需要重新编译的文件, 参考8.2指定终极日标一节Problems and Bugs


《GNU make中文手册》目录

第一章:概述...

Make之前基木知识:

1.1.1概述...

1.1.2准备知识......

1.2GNUmake介绍.......

1.2.1Makefile简介........

1.2.2Makefile规则介绍..

1.2.3简单的示例.........

1.2.4make如何工作...

1.2.5指定变量.......

1.2.6自动推导规则....

1.2.7另类风格的makefile...

1.2.8清除工作日录过程文件...

第二章:Makefile总述.....

Makefile概述...

2.1Makefile的内容....

2.2makefile文件的命名....

2.3包含其它makefile文件...

2.4变量MAKEFILES...........

2.5变量MAKEFILE_LIST..

2.6其他特殊变量..

2.7makefile文件的重建.........

2.8重载另外:个makefile....

2.9make如何解析makefile文件.

2.9.1变量取值.......

2.9.2条件语句...

2.9.3规则的定义........

2.10总结....

第三章:Makefile的规则.

Makefile规则......

3.1一个例了.....

3.2规则语法......

3.3依赖的类型..........

3.4文件名使用通配符.......

3.4.1统配符使用举例.....

3.4.2通配符存在的缺陷..

3.4.3函数wildcard........

3.5日录搜寻.................

3.5.1一般搜索(变量VPATH)

选择性搜索(关键字vpath) ....

录搜索的机制...........

命令行和搜索目录................

隐含规则和搜索目录...........

库文件和搜索目录.....

Makefile伪目标...

强制标(没有命令或依赖的规则)

空目标文件...

Makefile的特殊目标.

多目标............

多规则目标..................

静态模式.....................................

3.12.1静态模式规则的语法....

3.12.2静态模式和隐含规则.

3.13双冒号规则..........

3.14自动产生依赖.......

第四章:规则的命令...

规则中书写命令.........

12命令回显...........命令的执行...

4.3并发执行命令........

4.4命令执行的错误.....

4.5中断make的执行....

4.6make的递归执行....

4.6.1变量MAKE.............

4.6.2变量和递归.

4.6.3命令行选项和递归.

4.6.4-w选项.......

4.7定义命令包........

4.8空命令.....

第五章:Makefile中的变量.

使用变量..............

5.1变量的引用....

5.2两种变量定义(赋值).

5.2.1递妇展开式变量.................

5.2.2直接展开式变量...............

5.2.3如何定义一个空格...........

5.2.4*?=”操作符...........

5.3变量的高级用法..................

5.3.1变量的替换引用.....

5.3.2变量的套嵌引用...

5.4变量取值..........

5.5如何设置变量...

5.6追加变量值......

5.7override指示符.....

5.8多行定义...............

5.9系统环境变量.......

5.10目标指定变量........

5.11模式指定变量....

第六章:Make fle的条件执行

Make fle的条件判断......

6.1一个例了.....

6.2条件判断的基木语法........

2004年9月11月

GUN make中文手册

6.3标记测试的条件语句....

第七章:make的内嵌函数........

7make的函数..........

7.1函数的调用语法....

7.2文本处理函数...

7.2.1S(subst FROM, TO, TEXT) .........

7.2.10S(words TEXT)

7.2.11$(first word NAMES...)

S(patsubst PATTERN, REPLACEMENT, TEXT)

S(strip STR INT) ....

S(find string FIND, IN) .

S(filter PATTERN..., TEXT) .

S(filter-out PATTERN..., TEXT)

s(sort LIST) .....

S(word N, TEXT)

S(wordlistS, E, TEXT)

文件名处理函数.

S(dir NAMES...) .....

7.3.2S(not dir NAMES...) .....

7.3.3S(suffix NAMES...) ........................

7.3.4S(basename NAMES...) ...........

..7.3.5S(add suff SUFFIX.NAME..............

7.3.6S(add prefix PREFIX, NAMES...) ..........

7.3.7S join LIST 1, LIST 2) ...........

7.3.8S(wildcard PATTERN) ....

7.4for each函数.........

7.5if函数..........

7.6call函数..

7.7value函数.

7.8eval函数....

7.9origin的数..

7.10shell函数....

7.11 make的控制函数....

7.11.1$(error TEXT...).

7.11.2$(warning TEXT..........

第八章:执行make........

执行make.......

8.1指定makefile文件............

8.2指定终极目标...............

8.3替代命令的执行...........

8.4防止特定文件重建.........

8.5替换变量定义.....

8.6使用make进行编译测试..

8.7make的命令行选项.....

第九章:make的隐含规则....

9使用隐含规则...................

9.1隐含规则的使用.......

9.2make的隐含规则一览...

9.3隐含变量.....

9.3.1代表命令的变量..

9.3.2命令参数的变量.........

9.4make隐含规则链......

模式规则...............

模式规则介绍....

9.5.2模式规则示例.....

9.5.3自动化变量......

9.5.4模式的匹配......

9.5.5万用规则.....

9.5.6重建内底隐含规则..

9.6缺省规则.........

9.7后级规则...

9.8隐含规则搜索算法

第十章:使用make更新静态库文件..

10更新静态库文件......

10.1库成员作为目标........

ARCHIVE(MEMBER) ......--...

10.2静态库的更新....

10.2.1

10.3 make静态库的注意事项.....

10.4静态库的后缀规则.............

第十一章:

11GNUmake的一些特点....

11.1源自System v的特点.......

11.2源白其他版本的特点.....

11.3GNU make自身的特点..

第十二章和其它版本的兼容....

12不兼容性...

第十三章Makefile的约定......

13书写约定................

13.1基本的约定................

13.2规则命令行的约定....

13.3代表命令变量..............

13.4安装目录变量.........................

13.5 Makefile的标准目标名...

13.6安装命令分类........

第十四章make的常见错误信息.

14 make产生的错误信息...

附录1:关键字索引.....

GNUmake可识别的指示符:..

GNUmake函数:..............

GNUmake的自动化变量...

GNUmake环境变量.....

后序...............................

计算机


python
AI人工智能
javascript
计算机网络/服务器
数据库技术
计算机F

考试教辅


考研考博
英语四六级

沪ICP备18046276号-5