FreeBSD手工编译安装程序.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  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文档。上传文档
查看更多
FreeBSD手工编译安装程序.doc

  FreeBSD手工编译安装程序   虽然使用Ports Collection编译和安装软件非常简便,然而仍有两个理由来使用手工编译安装方式。一方面是Ports Collection中并不能涵盖所有的软件,有很多软件没有收入Ports Collection中。有很多原因使得一些很优秀的软件没有被收集入Ports Collection,例如,版权因素,或者没有志愿者对它移植到FreeBSD进行维护。另一方面,即使是通过Port来定制软件,仍需要了解了手工编译安装的过程和各种编译工具的使用,才能正常进行定制工作。  通常在FreeBSD下编译并安装应用程序并不困难,因为FreeBSD是一种非常标准的Unix,为Unix开发的标准C程序很容易就能在它上面编译运行。 编译和软件工具   为了编译和安装一个应用程序,必须要了解编译和运行软件的一般方法。对于大型程序和要求高效率的软件,通常用高级语言C来开发,使用C语言编译器将C源程序编译成执行程序。由于使用高级语言不依赖于硬件结构,这使得软件非常容易移植。Unix不仅提供了编译器,而且还提供了众多的工具来帮助进行编译和维护,最有用的工具为make。 GNU C与编译连接过程   C作为一种编译型的高级语言,这就是说运行C程序之前要将其先编译成可执行的由机器指令构成的执行程序,因此就需要使用一个编译器来对C源代码进行处理,FreeBSD使用的是GNU的C编译器。 $ cc hello.c $ ./a.out Hello, 来查看库文件的内容。 $ cc -c f1.c $ cc -c f2.c $ ar c mlib.a f1.o f2.o $ nm mlib.a  FreeBSD使用的C语言编译器gcc是一种非常流行的,多平台、高效率的C语言编译器,它提供了多种选项用于生成应用软件。以下为常用的一些选项:   -L   定义连接库文件的目录   -I   定义C源码的头文件的目录   -o   后面跟的参数为要生成的执行文件的名   -O   进行编译优化,可以指定使用不同的优化级别,从O2到O6,每个不同的级别使用的优化设置不同。   相关的选项还有定义生成的指令码类型的参数,如-m486生成486指令,缺省的gcc版本(2.7.2)不支持Pentium代码。   -g   加入调试代码,可以在完成后使用strip命令删除用于调试的信息   -c   仅仅进行编译而不进行连接,生成目标文件   -fPic   生成相对地址的代码,用于最后生成动态连接库   -static   强制生成静态连接的程序   -aout   生成a.out格式的执行文件、目标代码等,缺省使用ELF格式   -elf   3.0之后为缺省设置,生成ELF格式的目标和执行代码   可以通过命令行参数查看当前使用的GNU C编译器的版本: $ cc ndash;version Gcc version 2.7.2.1  FreeBSD当前使用GNU的C编译器gcc的版本为gcc 2.7.2.1,这不是 gcc编译器的最新版本,但稳定性非常好。虽然当前新版本的gcc 2.8已经很稳定了,但是由于编译器在系统中的重要性,编译器出现问题会造成系统的稳定问题,因此FreeBSD还没有转向gcc 2.8。另一个没有完全使用 gcc 2.8的重要原因是生成的执行文件格式问题,gcc 2.8不再支持生成a.out 执行格式的二进制程序。但完全转向gcc 2.8版本是必然趋势,在当前正在开发的FreeBSD 4.0-current中,已经使用了gcc 2.8作为标准配置。   在3.1系统中,如果想使用gcc 2.8,就需要安装Packages Co

文档评论(0)

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

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

1亿VIP精品文档

相关文档