Linux自由软件安装 ./config, make的理解

make menuconfig实战:从Kconfig到.config的完整配置流程 本文深入解析Linux内核开发中`make menuconfig`的完整配置流程。从Kconfig语法定义、图形化配置界面操作,到最终生成.config文件及转换为autoconf.h的自动化过程,详细阐述了配置系统的底层逻辑与实战技巧,帮助开发者高效定制内核并精准排查配置问题。 阅读详情

在 Linux 系统中安装软件的其中一种:源码安装的方法是,先输入./configure,然后输入make,最后make install。或许有人留意到没有,这些软件的根目录中开始是没有Makefile的,在执行了./configure后会生成了很多奇怪名字的文件.

configure是一个脚本,它能设置源程序来适应各种不同的操作系统平台,并且根据不同的系统来产生相应的 makefile 文件,Makefile 规定了用什么编译器、编译参数等信息。从而可以使你的源代码能在不同的操作系统平台上被编译出来。比如它会检测你是不是有CC或GCC。

可以通过在 configure 后加上参数来对安装进行控制,比如代码:

./configure --prefix=/usr

上面的意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share.

如果你安装时候指定的路径为:
--prefix=/usr/local/XXX,那么卸载的时候只需要把XXX这个文件夹删除即可!!!!!,因为该软件安装的所有文件都是放置在XXX这个文件夹。但如果你进行源码包安装的时候没有指定位置(默认值一般为/usr/local/),或指定的位置为--prefix=/usr/local,则这时候你安装软件生成的文件将分别存储在/usr/local/里面的bin、lib或ect等目录中,这时候卸载起来就相对麻烦一点了。

可以通过 ./configure --help 察看详细的各个参数的说明。

 

make是用来编译的,它从Makefile中读取指令,然后编译。make 是 Linux 开发套件里面自动化编译的一个控制程序,他通过借助 Makefile 里面编写的编译规范进行自动化的调用 gcc 、ld 以及运行某些需要的程序。

如果 在 make 过程中出现 error ,你就要记下错误代码(注意不仅仅是最后一行),然后你可以向开发者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系统少了一些依赖库等,这些需要自己仔细研究错误代码。

 

make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。这条命令来进行安装(当然有些软件需要先运行 make check 或 make test来进行一些测试),这一步一般需要你有 root 权限(因为要向系统写入文件),以通常得用 sudo make install。

当我们在使用make命令时,常常会在make后面加上其他单词,比如check,install,installcheck…这些单词都是make的参数,我们称之为“目标(targets)”。

最常见的几个目标:
make all:编译程序、库、文档等(等同于make)
make install:安装已经编译好的程序。复制文件树中到文件到指定的位置
make unistall:卸载已经安装的程序。
make clean:删除由make命令产生的文件
make distclean:同时删除./configure和make产生的临时文件
make check:测试刚刚编译的软件(某些程序可能不支持)
make installcheck:检查安装的库和程序(某些程序可能不支持)

make dist:重新打包成packname-version.tar.gz

 

AUTOMAKE 和 AUTOCONF 是非常有用的用来发布C程序的东西。

Ref:

https://blog.youkuaiyun.com/lltaoyy/article/details/7615833

https://www.sohu.com/a/191735643_505857

https://blog.youkuaiyun.com/a746742897/article/details/52311044
 

Buildroot make 执行链路全解析:从 Config.in 到最终镜像 在嵌入式 Linux 开发中,交叉编译工具链与根文件系统构建是核心环节。Buildroot 作为基于 Makefile 的自动化构建框架,通过 Kconfig 配置系统与包管理机制,将源码下载、校验、解压、补丁、编译和安装串联为一条可裁剪的流水线。其技术价值在于用配置驱动按需加载 package 的 .mk 文件,并借助 .hash 文件保障供应链完整性。典型应用场景包括定制 rootfs、生成多种格式镜像以及增量调试。理解 make 调度顺序与 output 目录分工,能显著提升编译问题排查效率。本文深入 阅读详情

相关推荐

Nginx源码编译实战:从依赖安装到make报错全解析

在Linux服务器部署中,软件安装方式直接影响服务的性能与可控性。包管理器虽然便捷,但提供的往往是通用性优先的预编译版本,难以满足定制化需求。源码编译作为更底层的软件构建方式,允许开发者从源代码开始,通过配置编译参数、选择功能模块,实现对软件的深度定制与优化。这一过程不仅涉及编译器工具链、依赖库(如PCRE、OpenSSL)的完整配置,更考验对Linux构建系统的理解。尤其在执行make编译时,常见的依赖缺失、编译器版本兼容性、第三方模块集成等问题,是许多运维工程师和开发者必须跨越的实践门槛。掌握Nginx

weixin_33853827的博客 489

linux自由软件安装 ./config, make的理解 -- ongoing

在linux系统中安装软件的其中一种:源码安装的方法是,先输入./configure,然后输入make,最后make install。或许有人留意到没有,这些软件的根目录中开始是没有Makefile的,在执行了./configure后会生成了很多奇怪名字的文件. configure是一个脚本,它能设置源程序来适应各种不同的操作系统平台,并且根据不同的...

weixin_34259559的博客 456

Linux内核编译踩坑记:解决‘No rule to make target debian/canonical-certs.pem’报错(附.config文件修改详解)

本文详细解析了Linux内核编译过程中常见的‘No rule to make target debian/canonical-certs.pem’报错,提供了三种不同安全等级的解决方案,包括禁用证书验证、使用本地证书和获取官方证书。文章还深入探讨了内核安全配置的权衡,并附有.config文件修改详解,帮助开发者安全高效地完成内核编译。

weixin_42537919的博客 304

Linux操作系统的Configure参数解释说明

                                 Linux操作系统的Configure参数解释说明Linux环境下的软件安装,并不是一件容易的事情;如果通过源代码编译后在安装,当然事情就更为复杂一些;现在安装各种软件的教程都非常普遍;但万变不离其中,对基础知识的扎实掌握,安装各种软件的问题就迎刃而解了。Configure脚本配置工具就是基础之一,它是autoconf的工具的基

ypd_eammbed_s 562

Emacs 在 Linux 源码编译安装全流程:configure、make 到 make install 实战详解

命令行文本编辑器是 Linux 运维与开发工作中最基础也最核心的工具之一,而 Emacs 作为一款拥有数十年历史的编辑器,至今仍在服务器和嵌入式环境中扮演重要角色。源码编译安装是 Linux 软件部署的经典方式,它涉及的 configure、make、make install 三步流程,体现了从源码到可执行文件的完整构建原理。理解这一过程,不仅能帮助用户在无图形界面的服务器上获得定制化的编辑环境,还能深入掌握系统依赖管理、环境变量配置等工程实践。本文从软件编译安装的通用概念出发,围绕 Redhat、Cent

weixin_34049948的博客 476

pkg-config-0.29.1源码编译与安装实战详解

pkg-config是 Linux 及类 Unix 系统中用于简化库依赖管理的关键工具。它通过读取.pc配置文件,自动提供编译和链接第三方库所需的Cflags(如-I头文件路径)和Libs(如-L库路径、-l链接名)参数,避免手动维护复杂选项。该工具在 Autotools、CMake 等构建系统中广泛应用,显著提升项目可移植性与构建自动化程度。其核心机制基于环境变量指定的搜索路径,按优先级查找对应库的配置信息,实现跨平台依赖解析统一化。宏展开的过程本质上是一次文本预处理。

weixin_31974443的博客 1192

configure交叉编译

交叉编译某个应用程序时,通常需要 ./configure 来生成对应的 Makefile ./configure 最关键的三个选项是: --host=HOST 指定软件运行的系统平台.如果没有指定,将会运行`config.guess'来检测. --build=BUILD 指定软件包安装的系统平台.如果没有指定,默认值将是'--host'选项的值. --target=GARG

ljx0305的专栏 2626

PBR:双向反射分布函数(BRDF)介绍与Cook-Torrance模型的实现

PBR:双向反射分布函数(BRDF)介绍与Cook-Torrance模型的实现 BRDF简介 再介绍BRDF之前我们要引入渲染方程这个东西: 其中L表示辐射率,其公式为: 它表示了一个拥有辐射强度Φ的光源在单位面积A,单位立体角ω上的辐射出的总能量。 辐射率是辐射度量学上表示一个区域平面上光线总量的物理量,它受到入射光线与平面法线间的夹角θ的余弦值cosθ的影响:当直接...

小龙虾的博客 1万+

linux ./config 浅析

1.简介 Config不是一种bash,config语言是linux内核的一种配置语言,config.in文件是使用该语言编写而成,在通常情况下,它看起很像一个SH语言的子集。config配置语言主要有21条基本语句,1条if语句,菜单块和source。主要包括以下几个方面: (1)菜单入口           例如:config  MODVERSION

gaoyang610的专栏 3467

模块 stm32_基于STM32设计的RFID读卡模块电路方案(原理图+程序)

采用stm32F030F4,用PWM产生125KHZ的方波,经过推挽电路进行功率放大,高频电流进入LC串联谐振电路,345uH和4.7NF的谐振频率正好是125KHZ,这时电容两端电压会到十几伏。当有卡接近线圈时,线圈两端会有曼彻斯特编码的调幅波。通过二极管以及电容的检波和滤波,产生的小信号送入LM358进行放大和整形,变成单片机可以读取的曼彻斯特编码信号。• IO 分配(采用内部晶...

weixin_28686771的博客 3816

ENSP内使用wireshark进行抓包,并且解析icmp报文

前四位:54 89 98 e8 20 38 为ip报文包的mac地址也就是物理地址。一开始进行抓包是没有icmp报文的,需要我们在ensp中使用pc1请求联通pc9。协议编号后分别为:ip版本、ip首部报文长度、服务类型、ip报文总长度。最后为校验和 、源ip地址、目的ip、从08 00开始为真正的数据。我们需要实验的端口为:0/0/4,也就是抓包第三个交换机内的报文。其中显示的icmp报文就是我们需要解析的ip报文。源mac地址后跟着的就是协议编号: 08 00。根据ip报文包的结构我们进行解析。

2301_81713278的博客 2139

./configure怎么用

其实./configure、make、makeinstall这三个命令,我们可以用&&来把命令连接起来执行,表示当前一条命令正常结束后,后面的命令才会执行,这个办法很好,既节省时间,又可以防止发生错误。例: ./configure&&make&&makeinstall 正常的编译安装/卸载: 源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)。 configure...

骷大人的博客 2万+

ONNC Open Neural Network Compiler 开源神经网络编译器 一个 开源、模块化、可重用编译器算法和工具链的库,专门针对深度学习加速器(DLA)部署导入ONNX模型

ONNC是一个集合了开源、模块化、可重用编译器算法和工具链的库,专门针对深度学习加速器(DLA)。ONNC从底层开始构建,旨在将ONNX中间表示(IR)翻译成专有DLA代码。其软件架构设计强调可移植性和可重用性,从而简化了开发新后端的工作。上图展示了ONNC软件栈的顶层框图。软件栈从导入ONNX计算图模型到输出相应的硬件二进制文件,展示了各个功能块。

万有文的博客 1997

linux自由软件安装 ./config, make的理解

在linux系统中安装软件的其中一种:源码安装的方法是,先输入./configure,然后输入make,最后make install。或许有人留意到没有,这些软件的根目录中开始是没有Makefile的,在执行了./configure后会生成了很多奇怪名字的文件. configure是一个脚本,它能设置源程序来适应各种不同的操作系统平台,并且根据不同的系统来产生相应的makefile文件...

weixin_30537391的博客 206

KUKA机器人与S7-1200 PLC实现Profinet通讯配置步骤详解

在工业自动化产线中,PLC与工业机器人之间的高效数据交换是控制逻辑落地的关键。传统硬接线方案在信号点多时布线复杂、故障排查困难,而现场总线技术通过一根网线即可实现主从设备间的周期通讯。Profinet作为主流工业以太网协议,由S7-1200作为IO Controller主站,KUKA机器人作为IO Device从站,在WorkVisual与TIA Portal中完成设备组态、I/O映射及信号分配,即可替代成捆电缆,稳定传输启停、状态及报警信号。这一方案适用于汽车、3C、物流等行业的自动化产线,尤其适合需要扩

weixin_42519985的博客 251

熵权法+TOPSIS完整教学:用Python评估大学科研实力(含雷达图绘制技巧)

本文提供了一套完整的熵权法与TOPSIS综合评价方法在Python中的实现教程,以高校科研实力评估为例,详细讲解了从数据预处理、客观权重计算、综合排序到结果可视化的全流程。重点介绍了如何利用Python进行数据清洗与转换,通过熵权法自动确定指标权重,并结合TOPSIS模型计算各院校与理想解的相对接近度进行排名。教程还包含了使用Matplotlib绘制专业雷达图的技巧,帮助读者直观呈现多维数据的对比分析结果,适用于各类多指标决策与绩效评估场景。

weixin_28520495的博客 416

linux自由软件安装config make的理解 -- ongoing

在linux系统中安装软件的其中一种:源码安装的方法是,先输入./configure,然后输入make,最后make install。或许有人留意到没有,这些软件的根目录中开始是没有Makefile的,在执行了./configure后会生成了很多奇怪名字的文件. configure是一个脚本,它能设置源程序来适应各种不同的操作系统平台,并且根据不同的系统来产生相应的makefile文...

Peace 5172

CesiumForUnreal实现地形等高线效果

CesiumForUnreal实现地形等高线效果

专注GIS开发 3437

linux中安装软件源码的过程中configure、make和make install分别起什么作用?

本文介绍了linux安装源码文件的软件中一般会用到的configure、make和make install三个命令发挥的功能,希望帮助到有兴趣的人。

keepaware的博客 1706

PostgreSQL 异常排查:读取流时发生异常 (x80004005)

通过以上步骤,您应该能够解决在 .NET Core 中与 PostgreSQL 数据库进行交互时出现异常 (x80004005) 的问题。确保数据库连接正确,查询语句准确,并使用兼容的驱动程序版本。如有必要,可以捕获异常并查看详细的错误信息,以便更好地排查问题。在使用 .NET Core 开发应用程序时,如果在与 PostgreSQL 数据库进行交互时遇到异常,例如在读取数据流时发生异常 (x80004005),我们需要进行排查和修复。另外,还可以尝试捕获异常并打印异常信息,以便更好地了解问题所在。

XwlyVue的博客 1623

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Linux编译安装中./configure、make 和 make install 的区别

./configure是用来检测你的安装平台的目标特征的; make是用来编译的,它从Makefile中读取指令; make install是用来安装的

weixin_42449832的博客 1150

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Linux编译安装中configure、make和make install各自的作用详解

mark一下 参考文章:Linux编译安装中configure、make和make install各自的作用详解

Dontla的博客 1657

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Linux内核编译的整体理解

Linux内核是一个用C语言写成的,符合POSIX标准的类Unix操作系统。内核是操作系统中最基本的一部分,提供了众多应用程序访问计算机硬件的机制。Linux内核的一大特点就是采用了整体式结构,由很多过程组成,每个过程都可以独立编译,其模块机制又使得内核保持独立而又易于扩充。Linux发行版是在Linux内核的基础之上,与外带的应用软件和工具打包配置之后发行的版本。最初的Linux内核在1991年由当时还在芬兰赫尔辛基大学计算机系读书的Linus Torvalds开发,之后Linus很快聚集了大量来自其他自

xiebingsuccess的博客 1162

Buildroot构建机制深度解析:make、Config.in、.mk与.hash全链路

在嵌入式Linux开发中,构建系统负责将源码转化为可运行的镜像。其核心原理基于GNU make的依赖调度与增量判断,通过Kconfig配置系统生成.config文件,再由.mk文件定义各软件包的构建规则,并利用.hash文件校验源码完整性。理解这一机制能显著提升构建效率与问题排查能力,适用于定制根文件系统、交叉工具链集成及镜像生成等场景。本文深入剖析Buildroot中make、Config.in、.mk和.hash的协同工作流程,揭示从配置到镜像的完整链路。

weixin_33861800的博客 399

Linux内核kconfig调用关系,linux内核中kconfig、.config、menuconfig之间的关系

在进行linux内核的配置编译的时候,最常见的就是make menuconfig命令。总所周知,linux是一个模块化定制的系统,那么它又是如何来实现模块化的配置的呢?在配置的过程中,我们最重要的就是理清楚 kconfig、.config 、 menuconfig之间的关系。一、linux内核的配置原理.config:默认情况下是没有.config文件的,配置过程就是为了产生.config文件。内...

weixin_35812176的博客 833

从源码构建 FFmpeg:INSTALL.md 安装流程完全解析(configure、make 与 install 细节)

本文以 FFmpeg 仓库的 [INSTALL.md](https://link.gitcode.com/i/a93bbf686c1baf3c22f5b8427147c659) 为核心,完整拆解“获取源码 → 合并 source plugin → configure 配置 → make 编译 → make install 安装”这条官方安装链路,并结合 [Makefile](https://lin

gitblog_00423的博客 752
上一篇: apt 和 apt-get 的区别
下一篇: GPU和显卡是什么关系?GPU会取代CPU吗?
coco_1998_2
博客等级 码龄19年 5807粉丝 175原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值