Linux:configure、make、make install

GNU构建系统(GNU Build System)主要是指通过autoconf、automake和libtool这三个工具构建出来的软件结构体系,又名Autotools。

GNU构建系统是利用脚本和make程序在特定的平台上构建软件的过程。一般过程是./configure,make,make install 三部曲。这种方式成为一种习惯,被广泛使用。

其中congure.ac、makefile.am是库作者最好必须提供的。

./configure

用来检测你的安装平台的目标特征的。比如检测是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。

用来生成 Makefile,为下一步的编译做准备,可以通过在 configure 后加上参数来对安装进行控制,比如代码:./configure –prefix=/usr 意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。一些软件的配置文件你可以通过指定 –sys-config= 参数进行设定。有一些软件还可以加上 –with、–enable、–without、–disable 等等参数对编译加以控制,你可以通过允许 ./configure –help 查看详细的说明帮助。

make 

是用来编译的,它从Makefile中读取指令,然后编译。

大多数的源代码包都经过这一步进行编译(当然有些perl或python编写的软件需要调用perl或python来进行编译)。如果 在 make 过程中出现 error ,你就要记下错误代码(注意不仅仅是最后一行)。

可能遇到的错误:make *** 没有指明目标并且找不到 makefile。问题很明了,没有Makefile,要先./configure 一下,再make。

有的时候在编译时不知道是否编译成功,而在没有编译成功就去make  install肯定会出错,这样就增加了问题的复杂性,可以在make结束的时候通过一条命令来检查是否成功编译:echo  $?

输入这条命令回车后,输出的结果是0,那么就说明成功编译,否则就是出错了,echo  $?表示检查上一条命令的退出状态,程序正常退出返回0!

make install

是用来安装的,它也从Makefile中读取指令,安装到指定的位置。

这条命令来进行安装(当然有些软件需要先运行 make check 或 make test 来进行一些测试),这一步一般需要你有 root 权限(因为要向系统写入文件)。

发表回复