当前位置:操作系统 > Unix/Linux >>

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.outHello, world!

  UNIX下缺省使用a.out作为生成的文件名,可以使用-o参数指出生成的执行文件名。

  事实上前面的编译生成执行文件的过程由两步组成,一是生成目标文件,通常使用.o为后缀,然后进行连接生成执行文件。因此,可以使用ar将多个目标文件组合成一个函数库文件,而可以使用nm来查看库文件的内容。$ cc -c f1.c$ cc -c f2.c$ ar c mlib.a f1.o f2.o$ nm mlib.a

  FreeBSD使用的C语言编译器gcc是一种非常流行的,多平台、高效率的C语言编译器,它提供了多种选项用于生成应用软件。以下为常用的一些选项:
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,