浅谈源码编译

linux 源码安装软件原理

(1) make 与 configure的关系

  在使用类似 gcc的编译器来进行编译的过程并不简单,因为一套软件并不会仅有一支程序,而是有一堆程序码文件。所以除了每个主程序与副程序均需要写上一笔编译过程的命令外,还需要写上最终的连结程序。程序小的时候还好,如果是大了,编译命令就麻烦了,这个时候,可以使用make这个命令的相关功能来进行编译过程的命令简化了!当运行 make 时,make 会在当时的目录下搜寻 Makefile或makefile这个文档,而makefile里面则记录了原始码如何编译的详细信息,make会自动的判别原始码是否经过变动了make是一支程序,会支找makefile,那makefile是怎么写的呢?通常软件开发商都会写一会侦测程序来侦测使用者的作业环境,以及该作业环境是否有软件开发商所需要的其它功能,该侦测程序侦测完毕后,就会主动的创建这个makefile的规则文件,通常地这支侦测程序文档名叫 configure或 config。

(2) 侦测程序侦测的数据大约如下:

   (1) 是否有适合的编译器可以编译本软件的程序码
   (2) 是否已经存在本软件所需要的函数库,或其它需要依赖的软件
   (3) 操作系统平台是否适合本软件,包括linux 的核心版本
   (4) 核心的表头定义(header include)是否存在(驱动程序必须要侦测)

(3) 运行流程:
root@ubuntu#./configure  # 利用侦测文件创建makefile规则文件
root@ubuntu#make  # 有了makefile文件后,用make命令按照makefile中的规则编译
root@ubuntu#make install #  编译好就安装即可
(4) 源码安装的优缺点:

(1) 一般我们下载的.deb或.rpm安装包都是别人帮你打包好的,别人给你什么功能你就用什么功能,但是源码安装就可以满足.deb和.rpm等包不具备的其他某些你需要的功能。

(2) 从源码编译安装程序,不但比你装rpm更适合自己的机器设置,而且它们一般会装到/usr/local目录,这样你以后如果换硬盘重装系统,也可以把以前/usr/local下的程序原封不动拷贝过去用。我的/usr/local下有2G之多的程序,你想要是我有一台新机器要重新安装,然后配置,得花费多少时间?实际上我曾经通过网络把它们传到一台新机器上,然后就出去吃晚饭,回来时我就得到了另一台一摸一样的Linux机器。

(3)确实要卸载makeinstall的程序怎么办呢?答案是直接删掉。别以为直接删掉程序会留下垃圾,引起“系统不稳定”。(btw:这是谁教你的啊?呵呵。)makeinstall无非就是把可执行程序放在/usr/local/bin,把某些函数库放在/usr/local/lib,把数据文件放在 /usr/local/share下一个它自己的目录,你把这些东西都删掉就行了,不会留下垃圾,即使真的留下一点文件没有删掉也占不了多少空间,更不可能引起系统不稳定。UNIX就是这么简单

(4) 当然也不是说什么都建议源码安装,比如Mozilla,OpenOffice,…它们编译时会占用你几个G的空间和好几个小时的时间,这种花费我觉得是不值得的,因为你不能从编译得到更多好处,不如直接安装编译好的版本

(5)参考文章:

   
(1) https://www.cnblogs.com/lin3615/p/4152294.html

(2) http://blog.163.com/qiantu1986@126/blog/static/3592266920114172382031/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值