Linux33_编译源代码,configure和prefix的概念
传统unix应用程序设计逻辑,autoconf有一个prefix的概念。
系统的系统库,基础工具和内核是放到一套代码树中的,
编译这个代码,内核和核心库,工具是一同完成的,这些都被认为是操作系统的一部分。
这些核心文件,就以根目录作为prefix。所以,/是所有操作系统核心程序的prefix。
在这个核心之外增加新的程序,构成一个发行版,这个发行版增加的程序就用/usr作为prefix。
你把发行版安装好了,安装发行版之外应用程序,那些程序通常用/opt, /srv作为prefix。
但如果你自己从源代码开始编译一个应用程序,这些程序是专门向你这个Site编译的,这种情况下,默认的prefix是/usr/local。
Filesystem Hierarchy Standard尝试把这个定义为一个标准;
当然你也可以将自己编译的程序直接放在$HOME/local中。
所以一般安装的时候要配置一下prefix。
./configure --prefix=/usr/local
// configure就是一个脚本。./configure是很多程序源代码安装的第一步,主要作用是对即将安装的程序进行配置。检查当前环境是否满足安装所需的依赖关系。对于源码包来说是这样的。如果是二进制包,那么解压后就能使用了。
'configure'脚本有大量的命令行选项。对不同的软件包来说,这些选项可能会有变化,但是许多基本的选项是不会改变的。
带上'--help'选项执行'configure'脚本可以看到可用的所有选项。尽管许多选项是很少用到的,但是当你为了特殊的需求而configure一个包时,知道他们的存在是很有益处的。
./configure的作用是检测系统配置,生成makefile文件,以便你可以用make和make install来编译和安装程序。
执行./configure的话要到你解压好的目录中去。
make //这条命令是编译
make install //这条是安装
然后对应的文件就会被安装到对应的目录中去;
理解configure脚本:https://www.jianshu.com/p/81916fba741c
使用configure脚本:https://www.cnblogs.com/lifexy/p/7866453.html
make 和 make install 的区别:https://www.jianshu.com/p/c70afbbf5172