[Linux]./configure | make | make install的工作过程与原理
经常使用的Linux编译/安装命令,有必要了解一下原理了。

step1 ./configure 配置与编译前检查
通常由软件开发商编写一个检测程序(configure或config)来检测用户的操作环境,以及该操作环境是否有软件安装时所需的其它功能
该检测程序检测完毕后,就会主动地创建Makefile的规则文件
有一些软件还可加上 –with、–enable、–without、–disable等参数对编译加以控制,可通过./configure –help 查看说明帮助
1.1 检测
- 是否有合适的编译器可以编译本软件的程序代码
- 是否已经存在本软件所需要的函数库,或其它需要的依赖软件
- 操作系统平台是否适合本软件,包括:Linux的内核版本
- 内核的头文件(header include)是否存在(驱动程序必须要的检测)
1.2 生成Makefile文件
(makefile文件记录了源码如何编译的详尽信息)
step2 make 编译
查找Makefile文件。
根据Makefile文件,调用源代码、函数库、编译器;编译源代码、连接、生成目标文件、可执行文件
step3 make install 安装
将编译成功的可执行文件、第三方依赖包和文档 安装(复制) 到 最终目录(Eg: /usr/local/nginx/sbin/...)
延申: 关于卸载
思路可参考本文: Linux ./configure && make && make install 编译安装和卸载 - 博客园
X 参考与推荐文献
- 《Linux - 鸟哥的私房菜:Page683-684》
- configure、 make、 make install 背后的原理(翻译) - Zhihu
- linux ./configure,make,make install的作用 - CSDN
- make 和 make install 的区别 - jianshu
- Linux ./configure && make && make install 编译安装和卸载 - 博客园
[Linux]./configure | make | make install的工作过程与原理的更多相关文章
- Linux configure,make,make install
https://www.cnblogs.com/tinywan/p/7230039.html https://www.sohu.com/a/191735643_505857 https://blog. ...
- Linux ./configure && make && make install 编译安装和卸载
正常的编译安装/卸载: 源码的安装一般由3个步骤组成:配置(configure).编译(make).安装(make install). configure文件是一个可执行的脚本文件,它有很多选项, ...
- [linux笔记]理清linux安装程序用到的(configure, make, make install)
我作为一名经常和linux打交道的程序员,每次在linux安装软件都祈求可以用——apt-get,yum,brew等应用程序管理器安装,有的时候事与愿违,你只能自己编译安装-wtf,说好的美丽世界呢? ...
- Linux中的configure,make,make install到底在做些什么
在Linux下经常要安装部署一些软件包或者工具,拿到安装包之后一看,简单,configure,make, make install即可搞定. 有时候我就在想,这个configure,make ,mak ...
- Linux下通过源码编译安装程序(configure/make/make install的作用,然后在/etc/profile文件里修改PATH环境变量)
一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件:就是通常我们见到的lib目录下的文件 配置文件:这个不必多说,都知道 帮助文档:通常是我们在 ...
- Linux下编译安装源码包软件 configure ,make, make install, make test/check, make clean
http://www.360doc7.net/wxarticlenew/541275971.html 一.什么是源码包软件? 顾名思义,源码包就是源代码的可见的软件包,基于Linux和BSD系统的软件 ...
- Win或Linux中编译安装软件的命令解析: configure; make; make install
原文地址:http://www.cnblogs.com/Jerry-Chou/archive/2010/12/18/1909843.html 翻译一篇文章,我最早从这篇文章中了解到为什么Linux平台 ...
- 大型项目使用Automake/Autoconf完成编译配置(标准的编译过程已经变成了简单的三部曲:configure/make/make install,)
使用过开源C/C++项目的同学们都知道,标准的编译过程已经变成了简单的三部曲:configure/make/make install, 使用起来很方便,不像平时自己写代码,要手写一堆复杂的Makefi ...
- Linux下编译安装源码包软件 configure ,make, make install, make test/check, make clean 假目标
http://www.360doc7.net/wxarticlenew/541275971.html 一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 ...
- 测试或运维工作过程中最常用的几个linux命令?
大家在测试工作过程中,可能会遇到需要你去服务器修改一些配置文件,譬如说某个字段的值是1 则关联老版本,是0则关联新版本,这时候你可能就需要会下vi的命令操作:或者查看session设置的时长,可能需 ...
随机推荐
- 关于uniapp
1.unipp中,页面生命周期onShow获取上一个传过来的options值. 答:onShow() { // 获取当前小程序的页面栈 let pages = getCurrentPages(); / ...
- MLR算法双面网络时钟
MLR算法双面网络时钟------专业LED时钟厂家![点击进入] MLR算法双面网络时钟 NTP电子时钟功能说明: 双面NTP电子时钟采用独特结构设计,可根据客户要求订制显示布局:年.月.日.时.分 ...
- Merge Overlapping Intervals
refer to: https://www.algoexpert.io/questions/Merge%20Overlapping%20Intervals Problem Statement Samp ...
- 根据id 删除树结构中的数据
根据id 删除树结构中的数据 filterHandle(data, id) { var newData = data.filter(x => x ...
- 冲刺总结-day7
完成任务:前端设计 设计系统前端,利用html和css对登录页面和进入系统操作界面进行界面化设计,使系统看起来美观.简洁. 一.设计思路 利用HTML对整个网页页面进行布局和设计内容,使用CSS对每一 ...
- centos7 升级gcc
#安装gcc yum install -y gcc-c++ autoconf automake #centos7 默认的 gcc 默认是4.8.5,版本小于 5.3 无法编译,需要先安装gcc新版 ...
- Sqoop从MySQL向Hive增量式导入数据报错:Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject
1.问题描述: (1)问题示例: Step1:创建作业: [Hadoop@master TestDir]$ sqoop job \> --create myjob_1 \> -- impo ...
- gongwen
gongwen 学号 姓名 工作占比 20201307 梁辰鱼 20% 20201323 谭顺心 17% 20201222 龚 杰 16.5% 20201325 夏俊睿 16% 20201317 鲁永 ...
- TP5.0--5.1获取当前域名的方法
TP5.0获取当前域名的方法 use think\Request; $request = Request::instance(); $domain = $request->domain(); 获 ...
- element表格样式修改
HTML代码: <el-table :data="tableData" style="width: 100%" border :row-class-nam ...