Unix 开发过程中,经常性的操作是从源码编译安装相应库文件,所以下面三个命令便是家常便饭,俗称三连:
./configure
make
make install
下面来看看这三步分别做了什么。
configure
执行 ./configure 文件一般是进行正式编译前的一些环境准备,准备编译需要的依赖项等。比如检测当前的系统平台,
检测需要的编译器是否存在如何调用,配置和生成相应编译所需文件。
make
前期准备工作完成无误后,就可能调用 make 来执行编译了。实际执行的是 Makefile 文件中定义的任务来从源码进行项目的编译。
通常情况下下载下来的 tar 包中可能没有包含正式的 Makefile 文件,而是另外形式呈现的临时文件,
比如 Makefile.in,Makefile.am,Makefile.MSVC 等,然后在执行 ./configure的时候根据相应环境来生成最终需要的 Makefile 文件。
make install
项目编译正常后,会生成相应的产出,可执行文件,so 或 o 文件或 DLL 动态链接文件等。最后一步就是将生成的文件复制到相应的系统目录,
这个过程便是安装。比如将可执行文件复制到系统 PATH 能取到的地方,帮助文档复制到 MANPATH,其他文件复制到对应目录下。
这种默认安装路径的话,会把可执行文件拷贝到/usr/local/bin,如果没有sudo权限的话是会失败的,有两种方法指定安装路径。一种是在./configure的时候指定路径
./configure --prefix=安装路径
make install DESTDIR=安装路径
pip install
在Linux下直接用pip install packageName,有些文件会被放到根目录下,如果没有sudo权限的话,是会安装失败的。这个以后我们就需要指定安装的目录了。
pip install --install-option="--prefix=绝对路径" packageName