修正若干错别字

This commit is contained in:
Bo Zhang 2017-04-06 15:01:30 +08:00 committed by GitHub
parent 1fbd6c94a2
commit 4f6eeaa23e

View File

@ -1,13 +1,13 @@
后序 后序
==== ====
终于到写结束语的时候了以上基本上就是GNU make的Makefile的所有细节了。其它的商的make基本上也就是这样的无论什么样的make都是以文件的依赖性为基础的其基本是都是遵循一个标准的。这篇文档中80%的技术细节都适用于任何的make我猜测“函数”那一章的内容可能不是其它make所支持的而隐含规则方面我想不同的make会有不同的实现我没有精力来查看GNU的make和VC的nmake、BCB的 make或是别的UNIX下的make有些什么样的差别一是时间精力不够二是因为我基本上都是在Unix下使用make以前在SCO Unix和 IBM的AIX现在在Linux、Solaris、HP-UX、AIX和Alpha下使用Linux和Solaris下更多一点。不过我可以肯定的是在Unix下的make无论是哪种平台几乎都使用了Richard Stallman开发的make和cc/gcc的编译器而且基本上都是 GNU的make公司里所有的UNIX机器上都被装上了GNU的东西所以使用GNU的程序也就多了一些。GNU的东西还是很不错的特别是使用得深了以后越来越觉得GNU的软件的强大也越来越觉得GNU的在操作系统中主要是Unix甚至Windows“杀伤力”。 终于到写结束语的时候了以上基本上就是GNU make的Makefile的所有细节了。其它的商的make基本上也就是这样的无论什么样的make都是以文件的依赖性为基础的其基本是都是遵循一个标准的。这篇文档中80%的技术细节都适用于任何的make我猜测“函数”那一章的内容可能不是其它make所支持的而隐含规则方面我想不同的make会有不同的实现我没有精力来查看GNU的make和VC的nmake、BCB的 make或是别的UNIX下的make有些什么样的差别一是时间精力不够二是因为我基本上都是在Unix下使用make以前在SCO Unix和 IBM的AIX现在在Linux、Solaris、HP-UX、AIX和Alpha下使用Linux和Solaris下更多一点。不过我可以肯定的是在Unix下的make无论是哪种平台几乎都使用了Richard Stallman开发的make和cc/gcc的编译器而且基本上都是 GNU的make公司里所有的UNIX机器上都被装上了GNU的东西所以使用GNU的程序也就多了一些。GNU的东西还是很不错的特别是使用得深了以后越来越觉得GNU的软件的强大也越来越觉得GNU的在操作系统中主要是Unix甚至Windows“杀伤力”。
对于上述所有的make的细节我们不但可以利用make这个工具来编译我们的程序还可以利用make来完成其它的工作因为规则中的命令可以是任何Shell之下的命令所以在Unix下你不一定只是使用程序语言的编译器你还可以在Makefile中书写其它的命令tar、 awk、mail、sed、cvs、compress、ls、rm、yacc、rpm、ftp等等等等来完成诸如“程序打包”、“程序备份”、“制作程序安装包”、“提交代码”、“使用程序模板”、“合并文件”等等五花八门的功能文件操作文件管理编程开发设计或是其它一些异想天开的东西。比如以前在书写银行交易程序时由于银行的交易程序基本一样就见到有人书写了一些交易的通用程序模板在该模板中把一些网络通讯、数据库操作的、业务操作共性的东西写在一个文件中在这些文件中用些诸如“@@@N、###N”奇怪字串标注一些位置然后书写交易时只需按照一种特定的规则书写特定的处理最后在make时使用awk和sed把模板中的“@@@N、###N”等字串替代成特定的程序形成C文件然后再编译。这个动作很像数据库的“扩展C”语言即在C语言中用“EXEC SQL”的样子执行SQL语句在用cc/gcc编译之前需要使用“扩展C”的翻译程序如cpre把其翻译成标准C。如果你在使用make时有一些更为绝妙的方法请记得告诉我啊。 对于上述所有的make的细节我们不但可以利用make这个工具来编译我们的程序还可以利用make来完成其它的工作因为规则中的命令可以是任何Shell之下的命令所以在Unix下你不一定只是使用程序语言的编译器你还可以在Makefile中书写其它的命令tar、 awk、mail、sed、cvs、compress、ls、rm、yacc、rpm、ftp等等等等来完成诸如“程序打包”、“程序备份”、“制作程序安装包”、“提交代码”、“使用程序模板”、“合并文件”等等五花八门的功能文件操作文件管理编程开发设计或是其它一些异想天开的东西。比如以前在书写银行交易程序时由于银行的交易程序基本一样就见到有人书写了一些交易的通用程序模板在该模板中把一些网络通讯、数据库操作的、业务操作共性的东西写在一个文件中在这些文件中用些诸如“@@@N、###N”奇怪字串标注一些位置然后书写交易时只需按照一种特定的规则书写特定的处理最后在make时使用awk和sed把模板中的“@@@N、###N”等字串替代成特定的程序形成C文件然后再编译。这个动作很像数据库的“扩展C”语言即在C语言中用“EXEC SQL”的样子执行SQL语句在用cc/gcc编译之前需要使用“扩展C”的翻译程序如cpre把其翻译成标准C。如果你在使用make时有一些更为绝妙的方法请记得告诉我啊。
回头看看整篇文档不觉记起几年前刚刚开始在Unix下做开发的时候有人问我会不会写Makefile时我两眼发直根本不知道在说什么。一开始看到别人在vi中写完程序后输入“!make”时还以为是vi的功能后来才知道有一个Makefile在作怪于是上网查啊查那时又不愿意看英文发现就根本没有中文的文档介绍Makefile只得看别人写的Makefile自己瞎碰瞎搞才积累了一点知识但在很多地方完全是知其然不知所以然。后来开始从事UNIX下产品软件的开发看到一个400人近200万行代码的大工程发现要编译这样一个庞然大物如果没有Makefile那会是多么恐怖的一样事啊。于是横下心来狠命地读了一堆英文文档才觉得对其掌握了。但发现目前网上对Makefile介绍的文章还是少得那么的可怜所以想写这样一篇文章共享给大家希望能对各位有所帮助。 回头看看整篇文档不觉记起几年前刚刚开始在Unix下做开发的时候有人问我会不会写Makefile时我两眼发直根本不知道在说什么。一开始看到别人在vi中写完程序后输入“!make”时还以为是vi的功能后来才知道有一个Makefile在作怪于是上网查啊查那时又不愿意看英文发现就根本没有中文的文档介绍Makefile只得看别人写的Makefile自己瞎碰瞎搞才积累了一点知识但在很多地方完全是知其然不知所以然。后来开始从事UNIX下产品软件的开发看到一个400人近200万行代码的大工程发现要编译这样一个庞然大物如果没有Makefile那会是多么恐怖的一样事啊。于是横下心来狠命地读了一堆英文文档才觉得对其掌握了。但发现目前网上对Makefile介绍的文章还是少得那么的可怜所以想写这样一篇文章共享给大家希望能对各位有所帮助。
现在我终于写完了,看了看文件的创建时间,这篇技术文档也写了两个多月了。发现,自己知道是一回事,要写下来,跟别人讲述又是另外一回事,而且,现在越来越没有时间专研技术细节,所以在写作时,发现在阐述一些细节问题时很难做到严谨和精练,而且对先讲什么后讲什么不是很清楚,所以,还是参考了一些国外站点上的资料和以及一些技术书籍的语言风格才得以完成。整篇文档的提纲是基于GNU的Makefile技术手册的提纲来书写的并结合了自己的工作经验以及自己的学习历程。因为从来没有写过这么长这么细的文档所以一定会有很多地方存在表达问题语言歧义或是错误。因些我迫切地得等待各位给我指证和建议,以及任何的反馈。 现在我终于写完了,看了看文件的创建时间,这篇技术文档也写了两个多月了。发现,自己知道是一回事,要写下来,跟别人讲述又是另外一回事,而且,现在越来越没有时间钻研技术细节,所以在写作时,发现在阐述一些细节问题时很难做到严谨和精炼,而且对先讲什么后讲什么不是很清楚,所以,还是参考了一些国外站点上的资料和以及一些技术书籍的语言风格才得以完成。整篇文档的提纲是基于GNU的Makefile技术手册的提纲来书写的并结合了自己的工作经验以及自己的学习历程。因为从来没有写过这么长这么细的文档所以一定会有很多地方存在表达问题语言歧义或是错误。因些我迫切地等待各位给我指正和建议,以及任何的反馈。
最后还是利用这个后序介绍一下自己。我目前从事于所有Unix平台下的软件研发主要是做分布式计算/网格计算方面的系统产品软件并且我对于下一代的计算机革命——网格计算非常地感兴趣对于分布式计算、P2P、Web Service、J2EE技术方向也很感兴趣同时对于项目实施、团队管理、项目管理也小有心得希望同样和我战斗在“技术和管理并重”的阵线上的年轻一代能够和我多多地交流。我的MSN是 haoel@hotmail.com常用QQ是753640不常用请勿给我MSN的邮箱发信由于hotmail的垃圾邮件导致我拒收这个邮箱的所有来信 最后还是利用这个后序介绍一下自己。我目前从事于所有Unix平台下的软件研发主要是做分布式计算/网格计算方面的系统产品软件并且我对于下一代的计算机革命——网格计算非常地感兴趣对于分布式计算、P2P、Web Service、J2EE技术方向也很感兴趣同时对于项目实施、团队管理、项目管理也小有心得希望同样和我战斗在“技术和管理并重”的阵线上的年轻一代能够和我多多地交流。我的MSN是 haoel@hotmail.com常用QQ是753640不常用请勿给我MSN的邮箱发信由于hotmail的垃圾邮件导致我拒收这个邮箱的所有来信