- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
后序
——
终于到写结束语的时候了,以上基本上就是 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 时有一些更为绝妙的方法,请记得告诉我啊。
回头看看整篇文档,不觉记起几年前刚刚开始在 Unix 下做开发的时候,有人问我会不会写 Makefile 时, 我两眼发直,根本不知道在说什么。一开始看到别人在 vi 中写完程序后输入!make时,还以为是 vi 的功能,后来才知道有一个 Makefile 在作怪,于是上网查啊查,那时又不愿意看英文,发现就根本没有中文的文档介绍 Makefile,只得看别人写的 Makefile,自己瞎碰瞎搞才积累了一点知识,但在很多地方完全是知其然不知所以然。后来开始从事 UNIX 下产品软件的开发,看到一个 400 人年,近200 万行代码的大工程,发现要编译这样一个庞然大物,如果没有 Makefile,那会是多么恐怖的一样事啊。于是横下心来,狠命地读了一堆英文文档,才觉得对其掌握了。但发现目前网上对Makefile 介绍的文章还是少得那么的可怜,所以想写这样一篇文章,共享给大家,希望能对各位有所帮助。
现在我终于写完了,看了看文件的创建时间,这篇技术文档也写了两个多月了。发现,自己知道是一回事, 要写下来,跟别人讲述又是另外一回事,而且,现在越来越没有时间专研技术细节,所以在写作时,发现 在阐述一些细节问题时很难做到严谨和精练,而且对先讲什么后讲什么不是很清楚,所以,还是参考了一 些国外站点上的资料和题纲,以及一些技术书籍的语言风格,才得以完成。整篇文档的提纲是基于GNU 的Makefile 技术手册的提纲来书写的,并结合了自己的工作经验,以及自己的学习历程。因为从来没有写过这么长,这么细的文档,所以一定会有很多地方存在表达问题,语言歧义或是错误。因些,我迫切地得 等待各位给我指证和建议,以及任何的反馈。
最后,还是利用这个后序,介绍一下自己。我目前从事于所有 Unix 平台下的软件研发,主要是做分
您可能关注的文档
最近下载
- 癫痫发作时的处理PPT.pptx VIP
- 2025公路水泥混凝土路面设计规范.pdf
- 北京市海淀区2024-2025学年八年级上学期期末考试地理试卷(含答案).pdf VIP
- 冀少版生物七年级下册知识点总结(课件).pptx VIP
- 冀少版生物七年级上册知识点总结(课件).pptx VIP
- 冀少版(2024)八年级上册生物期末复习全册知识点提纲.docx VIP
- 市政工程分部分项划分表(全套).pdf VIP
- 2024冀少版七年级生物生物期末复习全册知识点背诵提纲.pdf VIP
- 山东省济南市2024-2025学年七年级上学期期末考试语文试卷(含答案).pdf VIP
- 图集:12J003 室外工程.docx VIP
原创力文档


文档评论(0)