[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设置的时长,可能需 ...
随机推荐
- ubuntu | virtualbox报错:不能为虚拟电脑打开一个新任务
百度了几个办法 都不行. 还得是gxd,说在vmware虚拟机设置勾上这个就行了
- 数组扩展(Java)
Arrays类 基本介绍 数组的工具类java.util.Arrays 由于数组本身中没有什么方法可供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本操作 查 ...
- 3月2号Android开发学习
(2)视图基础 1.设置视图的高度 视图宽度通过属性Android:layout_width表达,视图高度通过属性android:layout_heigth表达,宽高的取值主要有以下三种 1.matc ...
- base64格式上传图片方法
function dataURItoBlob(dataURI) { const byteString = atob(dataURI.split(',')[1]); const mimeString = ...
- 1402:Vigenère密码
[题目描述] 6世纪法国外交家Blaise de Vigenère设计了一种多表密码加密算法--Vigenère密码.Vigenère密码的加密解密算法简单易用,且破译难度比较高,曾在美国南北战争中为 ...
- web后端之表单传值
第一种 第二种 第三种陪置web.xml文件
- 阿里云centos7 磁盘挂载
适用于多磁盘的情况 1. 查看本地所有磁盘 fdisk -l 2.格式化磁盘系统 mkfs.ext3 /dev/vdb (/dev/vdb 为未挂载的磁盘路径) 2.创建挂载点 mkdir /ho ...
- 自行封装JDBCUtils
自己封装JDBCUtils package com.javasm.util; import com.javasm.bean.Emp; import com.javasm.constants.JDBCC ...
- MySql8错误记录.巨坑!File './binlog.index' not found
mysql8存在大小写敏感,若要设置不敏感,需要在mysql初始化时设置:然后库中已有项目存在,mysql备份文件夹后无法重启,还原数据后存在权限问题,更改文件夹权限后,发现仍然不行,将SELinux ...
- 虚拟环境 venv的使用--(venv 一)
一.引言最近在学习<Flask Web Development 2nd Edition>的时候,作者开篇就介绍如何使用 venv 来管理 Python 环境 .自我觉得作者讲的非常好,想要 ...