首页 > 代码库 > linux软件编译流程

linux软件编译流程

首先先总结下linux下一些概念
1,gcc可以说是史上最强大的c语言编译器
起作用是将软件程序的源代码(纯文本文件)和利用已存在的函数库通过其本身gcc编译成计算机可识别的二进制文件。
该过程为程序编译的普遍流程 
2,环境检测程序(通常名为configuration或config),由于每个linux distribution使用的的内核版本是不同的,而不同的linux内核版本使用的系统调用和软件所需要的相关函数库可能也是不同的,因此对于软件在不同的操作系统以及内核版本上安装就需要通过某种环境监测机制,而这种检测机制就是我们的环境检测程序了,configuration或config。
在我们通过编译安装时通常会先通过tar -xzvf解压,然后就有一个命令./configuration ,这个就是环境监测工具了
 3,makefile文件,当环境检测程序运行结束后会在当前目录下生成makefile文件,里面记录了源代码如何编译的详细信息。
检测程序基本上会检测如下数据:
系统是否存在可编译本程序的编译器cc,gcc等
系统是否已包含该软件所需要的函数库或者是其他软件
操作系统和系统内核是否适合本软件版本
内核的头定义文件是否存在 
4,make程序, 
无论是在linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系。而且如此多的源文件,如果每次都要键入gcc命令进行编译的话,那对程序员来说简直就是一场灾难。而make工具则可自动完成编译工作,并且可以只对程序员在上次编译后修改过的部分进行编译。因此,有效的利用make和makefile工具可以大大提高项目开发的效率。同时掌握make和makefile之后,您也不会再面对着Linux下的应用软件手足无措了。
当执行make时,make会在当前目录下寻找makefile文件,然后依照makefile文件自动判断源代码是否经过变动而自动更新执行文件。 

整个编译安装流程:1,系统获取源代码。2,系统调用环境检测程序configure或者config程序找到所需的函数库,编译器和其他资料,主动创建makefile文件。3,make依据makefile文件设置源代码,函数库,编译器等来生成二进制可执行文件。(尚未被安装到制定目录)4,make install 命令,make回一句makefile文件里关于install 的选项将编译完成的可执行文件安装到默认的目录中。

linux软件编译流程