第8章 程序是怎样炼成的.pptVIP

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章 程序是怎样炼成的

【查看依赖关系——看他到底在哪能运行】 我趁蜗牛不注意的时候叫来ldd,运行了一下ldd ./rubbish1115,看看这个软件都依赖什么。ldd向我汇报如下: $ ldd ./rubbish1115 linux-vdso.so.1 = (0x00007fff31dff000) libc.so.6 = /lib/libc.so.6 (0x00007ff61215c000) /lib64/ld-linux-x86-64.so.2 (0x00007ff6124cc000) 看来依赖的还不是很多,算是最基本的了,可也照样不能随便放到别的系统上运行啊。 8.4.3 一个标准的源码包安装过程 【要装源码包,先打开看看】 源码包怎么装呢?当然是先把包解开再看了,得先解开压缩包看看里面是什么内容才能知道怎么装啊。 【解压tar包的工具】 拿到一个tar包之后,先用你的工具把tar包拆开。工具是啥?有道是解铃还须系铃人,tar打的包,当然还用tar来解了。 8.4.4 configure的作用 【施工之前,先勘察好环境】 【分析师出马】遇到这些问题,都是由于开工之前没有对施工的环境、现有的材料进行合理分析导致的。那么我们的这个configure,就是能够解决这种问题的一名分析师。 【照猫画虎】 蜗牛知道了一个源码发布的软件包的大概样子。于是照着人家这个软件包,对比一下自己的这个软件。一看,Makefile是现成的,只要再增加一个configure脚本,检查一下系统中有没有gcc之类的编译工具,以及库文件啥的就好了。 8.4.5 扩展阅读:黄金搭档——tar和gzip tar就是个打包裹的,他能把很多文件和目录收拾在一起,打成一个包裹,也就是生成一个tar包文件。tar只管打包,不管压缩。压缩怎么办?别急,我这还有另一个软件,叫gzip。这个软件就是专门负责压缩和解压缩的,但是他只能压缩单个文件,不能像WinZip那样能压缩一个目录里的好多文件。 8.5 规划局 configure脚本也好,Makefile文件也好,其写法都是有一定规律可循的。并且他们的内容都是有一定复杂度的。有规律还复杂的东西,就可以想办法让程序自动实现。 8.5.1 懒蜗牛的日记E 2010年 12月 20日 回冷 还有件最不了解的事,就是这configure脚本。好几万行的代码啊!这牛人们是怎么写出来这么复杂的脚本的?而且好像很多源码包里的configure脚本都差不多,难道他们都是一个专门给别人写脚本的大牛写的?不解中…… 8.5.2 自动生成的configure脚本 【3万行的脚本真不是人写的】 【3万行的脚本到底是谁写的?】 咱说gcc、cpp、as和ld他们4个命令就像施工队,make就是包工头,configure就是分析师,那这个Autoconf大概就是市政规划局了。有了他,什么Makefile,configure脚本,全都不用自己写,都由他一手代办。 8.5.3 规划局的成员组成 虽然软件叫做Autoconf,但其实并不是只有他一个人。他们这规划局成员有4个:Aclocal、Autoconf、Automake、Autoscan。 8.5.4 图纸审查 经过一番查找,蜗牛同学已经了解了Autoconf这一组软件的使用了,现在他要开始为他的程序加入configure脚本和Makefile了。 Autoscan是负责初步审查项目的。 【修改报告】 蜗牛拿到报告书,当然知道,这只是万里长征,才走完了第一步。赶紧叫来gedit小弟,修改报告书。 8.5.5 项目复审 【Aclocal的职能】 Aclocal负责复查Autoscan的报告,并且根据里面的内容,做一些详细的注解和说明。并且把这些注解和说明也写成一个报告,叫做aclocal.m4。 8.5.6 派遣分析师 【Aotuconf的职能】 Autoconf就是专门负责指派分析师的了。 8.5.7 编写施工计划 【Automake的职能】 Automake的职能就是专门写configure需要的makefile.in。 【编写Makefile.am】 为了帮助我们提高办事效率,也为了你自己早点拿到Makefile的蓝本,先写个草稿,这个草稿叫做Makefile.am。 8.6 本章小结 咱们的蜗牛同志创造了不少的rubbish之后,算是对Linux下面的软件开发,有了深入一些的了解了。什么编译原理、什么Makefile、还有怎么configure、怎么使用Autoconf,全都体验了一下。 8.1 施工队 软件的最初状态自然就是源代码,要把C语言的源代码变成二进制的程序,离不开GCC。那么GCC到底对源代码做了什么,才能

文档评论(0)

ligennv1314 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档