Linux命令详解./configure、make、make install 命令

make 中 DESTDIR 和 --prefix 的区别 这两个示例分别展示了如何使用两种流行的构建系统( + 和 + )来编译和安装软件,并解释了 和 这两个选项的作用。这个命令运行 脚本,它是 生成的,用于检测系统环境并创建适当的 。这里: 指定了软件安装的基本目录。这意味着软件的可执行文件、库文件、头文件等将安装到 目录下及其子目录中。如果不指定 ,则默认安装到 。这个命令使用 工具来编译软件。 是一个选项,表示 可以同时运行8个作业(jobs),这样可以加快编译过程,利用多核处理器的优势。这个命令执行 目标,根据 将编译好的软件安装到 阅读详情

1 基本信息

这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤
./configure 是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本,另外,./configure是源代码安装的第一步,主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系,但并不是所有的tar包都是源代码的包
make 是用来编译的,它从Makefile或者makefile(Linux区分大小写)中读取指令,然后编译。
make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。
注意:AUTOMAKE和AUTOCONF是非常有用的用来发布C程序的东西。

2 详细解释

1.configure命令

这一步是配置,一般用来生成 Makefile,为下一步的编译做准备,可以通过在configure 后加上参数来对安装进行控制
比如代码:./configure --prefix=/usr 意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin ,资源文件就会安装在 /usr/share,如果没有使用--prefix指定路径那么都是走默认路径:可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr/local/share

2.make

这一步就是编译,大多数的源代码包都经过这一步进行编译(当然有些perl或python编写的软件需要调用perl或python来进行编译)
如果在make过程中出现error,就要记下错误代码(注意不仅仅是最后一行),然后可以向开发者提交 bugreport(一般在INSTALL里有提交地址),或者系统少了一些依赖库等,这些需要自己仔细研究错误代码。

可能遇到的错误:make *** 没有指明目标并且找不到 makefile, 停止。问题很明了,没有Makefile,怎么办,原来是要先./configure 一下,再make

3.make install

这条命令来进行安装(当然有些软件需要先运行make check 或 make test 来进行一些测试),这一步一般需要有root权限(因为要向系统写入文件)
指定文件安装位置:

  • make PREFIX=/usr/local/redis install 安装到指定的redis目录下
  • make DESTDIR=/install/directory install 和上面同理
    注意:此步骤不是必须的,因为在上一步make命令中就已经编译出了可执行的文件了,此时的make install只是为了安装到Linux系统中常用的位置上,因为从那个目录下运行程序有些不便

4.configure和make中的DESTDIR和PREFIX区别

1. configure中的PREFIX

./configure --prefix=*
确定包在安装时的位置,以及在运行时查找相关文件的位置。如果您只是为了在单个主机上使用而进行编译,那么应该使用它

注意:如果不配置该选项,安装后比较凌乱,如下:

  • 可执行文件默认放在/usr/local/bin中
  • 库文件默认放在/usr/local/lib中
  • 配置文件默认放在/usr/local/etc中
  • 资源文件默认放在/usr/local/share中

2.make中的DESTDIR

make install DESTDIR=*
安装到临时目录,该目录不是运行包的位置。
例如,这在构建deb包时使用。构建包的人实际上并没有将所有东西都安装到自己系统的最终位置。他可能已经安装了一个不同的版本,不想打扰它,或者他甚至不是根用户。
因此,他使用configure --prefix=/usr,以便程序在运行时希望安装在/usr中,然后让install DESTDIR=debian/tmp实际创建目录结构

3.make中的PREFIX

make install prefix=/foo/bar/baz
这将把它安装到另一个地方,但不会像DESTDIR=/foo/bar/baz那样创建所有目录,它通常与GNU stow一起使用:./configure --prefix=/usr/local && make && sudo make install prefix=/usr/local/stow/foo,它将在/usr/local/stow/foo/bin中安装二进制文件。
相比之下,make install DESTDIR=/usr/local/stow/foo将在/usr/local/ local/bin中安装二进制文件

5.make中使用prefix没有生效

如果解压缩后的文件中有configure,是使用./configure --prefix指定安装地方,否则就是默认的/usr/local/下面,这个时候如果在使用make --prefix=path install 不会生效,因为配置时已经指定了安装地址了,因此这一步不会生效了
如果解压缩后的文件中没有configure,但是相应的有Makefile或makefile,那么就可以使用make --prefix=path install 来指定路径

3.扩展说明

Linux的用户可能知道,在Linux下安装一个应用程序时,一般先运行脚本configure,然后用make来编译源程序,在运行make install,最后运行make clean删除一些临时文件。使用上述三个自动工具,就可以生成configure脚本。运行configure脚本,就可以生成Makefile文件,然后就可以运行make、make install和make clean

configure是一个shell脚本,它可以自动设定源程序以符合各种不同平台上Unix系统的特性,并且根据系统参数及环境产生合适的Makefile文件或是C的头文件(header file),让源程序可以很方便地在这些不同的平台上被编译连接。这时,就可运行configure脚本了,运行configure脚本,就可产生出符合GNU规范的Makefile文件了: ./configure,到此时,就可以运行make进行编译,在运行make install进行安装了,最后运行make clean删除临时文件。

$ make
$ make install  #注:运行这个要有足够的权限
$ make clean

利用configure所产生的Makefile文件有几个预设的目标可供使用,其中几个重要的简述如下:

  • make all:产生我们设定的目标,即此范例中的可执行文件。只打make也可以,此时会开始编译原始码,然后连结,并且产生可执行文件。
  • make clean:清除编译产生的可执行文件及目标文件(object file,*.o)
  • make distclean:除了清除可执行文件和目标文件外,把configure所产生的Makefile也清除掉。
  • make install:将程序安装至系统中。如果原始码编译无误,且执行结果正确,便可以把程序安装至系统预设的可执行文件存放路径。如果用bin_PROGRAMS宏的话,程序会被安装至/usr/local/bin这个目录。
    make dist:将程序和相关的档案包装成一个压缩文件以供发布。执行完在目录下会产生一个以PACKAGE-VERSION.tar.gz为名称的文件。 PACKAGE和VERSION这两个变数是根据configure.in文件中AM_INIT_AUTOMAKE(PACKAGE,VERSION)的定义。在此范例中会产生test-1.0.tar.gz的档案。
  • make distcheck:和make dist类似,但是加入检查包装后的压缩文件是否正常。这个目标除了把程序和相关文件包装成tar.gz文件外,还会自动把这个压缩文件解开,执行 configure,并且进行make all 的动作,确认编译无误后,会显示这个tar.gz文件可供发布了。这个检查非常有用,检查过关的包,基本上可以给任何一个具备GNU开发环境-的人去重新编译。
    ————————————————
    版权声明:本文为优快云博主「爱吃牛肉的大老虎」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.youkuaiyun.com/u012060033/article/details/105134757
31、车载通信中的可见光通信(VLC)技术解析 本文详细解析了车载通信中可见光通信(VLC)技术的应用背景、优势及发展前景。对比传统RF通信技术(如DSRC),VLC利用LED照明设备实现高效、安全的车辆与车辆、车辆与基础设施之间的通信,具有频谱资源丰富、安全性高、无电磁干扰等优势。文章还探讨了VLC在交叉口交通控制、高速公路通信、自动驾驶等场景的应用潜力,展望了其在未来智能交通系统中的重要作用。 阅读详情

相关推荐

SAP Parallel Accounting(平行分类账业务)配置及操作手册【适用于多国家会计准则】

在SAP系统中,分类账(Ledger)是用于会计核算的核心概念,它允许企业根据不同的会计原则和货币进行财务记录。定义分类账是配置平行账(Parallel Accounting)的第一步。分类账的创建:通过事务代码OX18可以创建新的分类账。通常,一个SAP系统会有一个主分类账(如0L),它代表法定会计和实时传输至管理会计(CO)的账本。分类账属性:在创建分类账时,需要定义其属性,如会计年度变式、货币、会计原则等。这些属性将决定分类账的核算规则和适用性。

数字化2025 4616

linux下configure命令详细介绍

与一些技巧相比,Configure显得基础一些,当然使用和学习起来就显得枯燥乏味一些,当然要成为高手,对基础的熟悉不能超越哦。为此我转载了一篇关于Configure选项配置的详细介绍。供大家参考'configure'脚本有大量的命令行选项.对不同的软件包来说,这些选项可能会有变化,但是许多基本的选项是不会改变的.带上'--help'选项执行'configure'脚本可以看到可用的所有选项.尽管许多选项是很少用到的,但是当你为了特殊的需求而configure一个包时,知道他们的存在是很有益处的.下面对每一个选

u012253351的博客 4661

[Unity]-[UI]-[Image] 关于UI精灵图资源导入设置的详细解释

如果纹理存储了有特定含义的信息,并且您需要着色器中的确切值(例如,平滑度或金属度),请禁用此属性。此选项允许将纹理编码为特定格式(RGBM 或 dLDR,具体取决于平台)并通过后期处理步骤对纹理数据进行处理(推拉式扩张通道)。使用在3D模型的专业法线贴图。通用的纹理类型,一般在Material上的材质图片参数使用,比如漫反射、法线贴图这些。​​Compression​​:ASTC 6x6(移动端)或DXT5(PC)​​Compression​​:BC5(PC)或ASTC 6x6(移动端)

sky_smile_Allen的博客 2171

Centos 下 make指令PREFIX参数和Install,all到底有什么作用

在安装redis的时候,老师教了要先对解压出来的tar包进行编译操作 后来又输入了一个 make PREFIX=..... install 不太理解这一步,我在make --help里面没有看到与PREFIX 和 install相关的指令 在Redis 官网也只看到编译操作,没有看到下面这一步操作 不知道这一步的实际意义是在干什么 ...

weixin_44274263的博客 1765

Cadence Virtuoso实战:NMOS差分放大器设计与SPICE仿真全解析

本文详细解析了使用Cadence Virtuoso设计NMOS差分放大器并进行SPICE仿真的全流程。从基础设计要点、原理图绘制到工作点分析与性能调优,提供了实用的设计技巧和常见问题解决方案,帮助工程师高效完成模拟集成电路设计。重点介绍了差分放大器的关键参数设置、饱和区优化及版图设计注意事项,适用于ADC、DAC等高性能电路开发。

weixin_28340315的博客 611

运算放大器电路中的T型网络:如何用更小电阻实现高增益并降低噪声?

本文深入解析了运算放大器电路中T型反馈网络的设计与应用。该网络通过三个较小阻值电阻的组合,等效实现高增益,有效规避了传统大反馈电阻带来的显著热噪声问题。文章从数学原理、噪声定量分析到实际设计技巧,系统阐述了如何利用T型网络在实现高增益的同时,显著降低电路噪声并改善整体性能。

banana的博客 318

linux的configure,make和make install命令怎么用

configure(配置) configure文件是一个可执行的脚本文件,它有很多选项。 其中–prefix选项是配置安装目录,如./configure --prefix=/usr/local/test,若不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share,比较凌乱,且安装在一个目录后续删除和复制都比较容易(操作应用文件夹就好)。 configur

骷大人的博客 1852

YOLOv12环境配置,手把手教你使用YOLOv12训练自己的数据集和推理(附YOLOv12网络结构图),全文最详细教程

YOLO 系统尊嘟太卷了吧,YOLOv11 还没完明白,YOLOv12 就重磅来袭,YOLOv12 是由纽约州立大学联合中科院在 2025年2月19 日发布,从 YOLOv12 论文题目我们大概就知道做了那些更新 ,下图是YOLOv12 在 COCO 数据集上的性能表现引入区域注意力机制(area-attention):通过引入十字形窗口自我注意机制,沿水平和垂直条纹计算注意力机制,纵横交错的注意机制。如下图所示,区域注意力采用最多简单的等分方法,将特征地图垂直或水平划分为 L 个区域。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 6万+

Linux命令详解:./configure、make、make install 命令

这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如代码:./configure --prefix=/usr 意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。install也 是linux系统命令。2、make 构建,用来编译,它从Makefile中读取指令,然后编译。

qq_20990333的博客 3110

基于卷积神经网络的球罐结构损伤识别

球罐结构损伤识别方法研究 摘要:本研究针对球形储罐(球罐)结构健康监测需求,提出基于卷积神经网络(CNN)的损伤识别方法。通过ANSYS有限元仿真构建包含5种裂纹深度的500组振动信号数据集,设计包含卷积层、池化层和全连接层的CNN网络架构。实验结果表明,该方法在训练集和测试集上分别达到98.4%和96.0%的准确率,验证了其在球罐焊缝损伤识别中的有效性。研究提供了完整的MATLAB实现代码,为球罐结构智能化监测提供了技术参考。 关键词:球罐结构;卷积神经网络;损伤识别;振动信号;深度学习

AI的内部世界的博客 120

揭秘AI人工智能中Stable Diffusion的模型微调技巧

Stable Diffusion作为一种强大的文本到图像生成模型,在艺术创作、设计、娱乐等多个领域展现出了巨大的应用潜力。然而,其默认的模型输出可能无法满足特定用户或特定场景的个性化需求。本文章的目的在于深入揭秘Stable Diffusion的模型微调技巧,让读者能够根据自己的需求对模型进行定制化调整,生成符合特定风格、主题或要求的图像。范围涵盖了从基础概念到实际操作,从理论原理到项目实战的全方位内容,旨在为读者提供一个系统且深入的学习指南。

大模型应用工坊 948

Linux命令详解./configure、make、make install 命令学习

这将把它安装到另一个地方,但不会像DESTDIR=/foo/bar/baz那样创建所有目录,它通常与GNU stow一起使用:./configure --prefix=/usr/local && make && sudo make install prefix=/usr/local/stow/foo,它将在/usr/local/stow/foo/bin中安装二进制文件。主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系,但并不是所有的tar包都是源代码的包。

weixin_42419429的博客 3523

PCL K4PCS算法实现点云粗配准【2026最新版】

K4PCS算法实现点云粗配准。博客长期更新,本文最近一次更新时间为:2026年5月4日。

点云侠的博客 42万+

Linux中./configure、make、make install命令详解

简单来说,make 是编译,make install 是安装。   总结:linux编译安装中configure、make和make install各自的作用  • ./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。  • make是用来编译的,它从Makefile中读取指令,然后编译。  • make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。 1、configure 这一步一般

wkl_venus的博客 500

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Linux 命令详解./configure、make、make install 命令

这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤 一、基本信息 1、./configure 是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。 2、make 是用来编译的,它从Makefile中读取指令,然后编译。 3、make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。 注意:AUTOMAKE和AUTOCONF是非常有用的用来发布C程序的东西。 二、详细解释 1、co

qq_44106818的博客 292

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Linux 命令详解 ./configure、make、make install 命令

这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤 一、基本信息   1、./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。   2、make是用来编译的,它从Makefile中读取指令,然后编译。   3、make install是用来安装的,它也从Mak...

ayz671101的博客 206

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Linux 命令详解(三)./configure、make、make install 命令

Linux 命令详解(三)./configure、make、make install 命令 这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤 一、基本信息 1、./configure 是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。 2、make 是用来编译的,它从Makefile中读取指令,然后编译。 3、make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。 注意:A

zhangdian2011的博客 249

linux命令make详解,Linux 命令详解(三)./configure、make、make install 命令

生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如代码:./configure –prefix=/usr 意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。同时一些软件的配置...

weixin_34515820的博客 535
上一篇: Linux文件及文件目录
下一篇: java反射
Persistence___
博客等级 码龄8年 47粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值