Linux Make 三连

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

   转载规则


《Linux Make 三连》 吴杭沉 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
Linux 终端诡异家伙 Linux 终端诡异家伙
这篇文章,我们一起来到 Linux 的诡异的一面……你知道吗?在我们日常使用的 Unix(和 Linux )及其各种各样的分支系统中,存在着一些诡异的命令或进程,它们让人毛骨悚然,有些确实是有害,但也有些却是有益的。下面就来简单介绍一下这些
2024-07-24
下一篇 
Ubuntu 完全卸载一个软件包 Ubuntu 完全卸载一个软件包
今天卸载一个软件,老是有配置残留,网上找到了解决方案:查看已安装的软件: dpkg -l |grep 软件名 找到一大堆相关的包,然后卸载核心的包: sudo apt-get remove --purge 软件包名继续grep,直到找不到相
2024-07-23
  目录