Linux下源码编译安装的三个步骤

Linux 3422℃

在Linux下源码安装一个应用程序时,一般先运行脚本configure,然后用make来编译源程序,再运行make install。

1.configure命令

预编译,主要用于检测系统基准环境库是否满足gcc环境,生成makefile文件。configure是个shell脚本,可以自动设定源程序以符合各种不同平台上Unix系统的特性,并且根据系统叁数及环境产生合适的符合GNU规范的Makefile文件或是C的头文件(header file),让源程序可以很方便地在这些不同的平台上被编译连接,为下一步的编译做准备。可以通过在 configure 后加上参数来对安装进行控制,最常见的就是使用(–prefix=路径)来指定安装路径(而不是默认的/usr/local/)。同时一些软件的配置文件你可以通过指定 –sys-config= 参数进行设定。有一些软件还可以加上 –with、–enable、–without、–disable 等等参数对编译加以控制,你可以通过允许 ./configure –help 查看详细的说明帮助。

./configure --prefix=安装目录

2.make

编译,基于第一步生成的makefile进行代码编译。大多数的源代码包都经过这一步进行编译(当然有些perl或python编写的软件需要调用perl或python来进行编译)。如果 在 make 过程中出现 error ,可能是你的系统少了一些依赖库等,这些需要自己仔细研究错误代码。可以使用错误代码(注意不仅仅是最后一行)在网上搜索相关解决方案。可能遇到的错误:make *** 没有指明目标并且找不到 makefile。问题很明了,没有Makefile,怎么办,原来是要先./configure 一下,再make。一般情况下,只需要直接用make即可,但是有时候,生成的Makefile文件中并没有指定C编译器或者C++编译器,那么就需要手动指定了,不然就有可能出现编译错误。

make CC=指定C语言编译器
make CXX=指定C++编译器

除了make命令,还有其他几个常用的预设命令:

  • make all:产生我们设定的目标,即此范例中的可执行文件。只打make也可以,此时会开始编译原始码,然后连结,并且产生可执行文件。
  • make clean:清除编译产生的可执行文件及目标文件(object file,*.o)。
  • make distclean:除了清除可执行文件和目标文件外,把configure所产生的Makefile也清除掉。
  • make install:将程序安装至系统中。如果原始码编译无误,且执行结果正确,便可以把程序安装至系统预设的可执行文件存放路径。
  • make dist:将程序和相关的档案包装成一个压缩文件以供发布。
  • make distcheck:和make dist类似,但是加入检查包装后的压缩文件是否正常。

3.make install

安装,将相关可运行文件安装到系统中。有些软件需要先运行 make check 或 make test 来进行一些测试。这一步一般需要你有 root 权限(因为要向系统写入文件)。

转载请注明:零五宝典 » Linux下源码编译安装的三个步骤