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 --prefix=安装路径
make install DESTDIR=安装路径
pip install
Linux 下直接 pip install packageName,有些文件会装到根目录,无 sudo 权限会失败,此时需要指定安装目录:
pip install --install-option="--prefix=绝对路径" packageName