linux编译安装中configure、make和make install各自的作用
./configure是用来检测你的安装平台的目标特征的。configure根据给定的参数和系统环境会生成Makefile控制代码。 make是用来编译的,读取Makefile中的配置对源码进行编译。 make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。 AUTOMAKE和AUTOCONF是非常有用的用来发布C程序的东西。
1、configure
一般用来生成 Makefile,为下一步的编译做准备。 你可以通过在 configure 后加上参数来对安装进行控制,比如代码: ./configure --prefix=/usr 将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。 同时一些软件的配置文件你可以通过指定 --sys-config= 参数进行设定。有一些软件还可以加上 --with、--enable、--without、--disable 等等参数对编译加以控制,你可以通过允许 ./configure --help 察看详细的说明帮助。
[不同软件的编译 configure 参数不同,请使用该命令查阅]
./configure --help
- --with-PACKAGEwith表示,是否需要添加某个功能,往往需要指定依赖的外部库在哪里,该软件包若已经安装可以指向该包安装目录;
- -enable-FEATURE enable表示某个功能是否开启[yes/no],且这种功能往往是内置的.
2、make
make 的作用是开始进行源代码编译, 以及一些功能的提供,这些功能由他的 Makefile 设置文件提供相关的功能,比如 make install 一般表示进行安装,make uninstall 是卸载,不加参数就是默认的进行源代码编译。 如果 在 make 过程中出现 error ,你就要记下错误代码(注意不仅仅是最后一行)。 make 是 Linux 开发套件里面自动化编译的一个控制程序,他通过借助 Makefile 里面编写的编译规范进行自动化的调用 gcc 、ld 以及运行某些需要的程序进行编译的程序。 一般情况下,他所使用的 Makefile ,由 configure 这个设置脚本根据给定的参数和系统环境生成。
3、make install
安装(当然有些软件需要先运行 make check 或 make test来进行一些测试),这一步一般需要你有 root 权限(sudo make install) 将上一个步骤所编译完成的数据给他安装到预定的目录中,玩陈二狗安装
4、其它命令
make all:
产生我们设定的目标,即此范例中的可执行文件。只打make也可以,此时会开始编译原始码,然后连结,并且产生可执行文件。
make clean:
清除编译产生的可执行文件及目标文件(object file,*.o)。
make distclean:
除了清除可执行文件和目标文件外,把configure所产生的Makefile也清除掉。
make install:
将程序安装至系统中。如果原始码编译无误,且执行结果正确,便可以把程序安装至系统预设的可执行文件存放路径。如果用bin_PROGRAMS宏的话,程序会被安装至/usr/local/bin这个目录。
make dist:
将程序和相关的档案包装成一个压缩文件以供发布。执行完在目录下会产生一个以PACKAGE-VERSION.tar.gz为名称的文件。 PACKAGE和VERSION这两个变数是根据configure.in文件中AM_INIT_AUTOMAKE(PACKAGE,VERSION)的定义。在此范例中会产生test-1.0.tar.gz的档案。
make distcheck:
和make dist类似,但是加入检查包装后的压缩文件是否正常。这个目标除了把程序和相关文件包装成tar.gz文件外,还会自动把这个压缩文件解开,执行 configure,并且进行make all 的动作,确认编译无误后,会显示这个tar.gz文件可供发布了。这个检查非常有用,检查过关的包,基本上可以给任何一个具备GNU开发环境-的人去重新编译。
来源:https://www.cnblogs.com/sjxbg/p/11375685.html