当前位置: 首页 > news >正文

ubuntu16.04升级cmake版本至3.21.0

ubuntu16.04升级cmake版本至3.21.1

前言:建议先看完文章,再逐步跟做。

相对来说。ubuntu16.04是比较稳定一版,但其默认安装的cmake版本是3.5.1,假如我们需要用到更高的cmake版本,则需要手动升级cmake版本号。以cmake3.5.x升级到cmake3.21.x为例,升级步骤如下:

先检查ubuntu16.04系统中cmake版本,终端执行命令

cmake --version

编译cmake之前需要安装openssl, 否则编译会报错,终端执行命令:

sudo apt install libssl-dev build-essential

cmake3.21.0源码下载并解压

官网:https://cmake.org/download/

cmake-3.21.1版本,需要自己下载源码编译配置,下载链接如下:
https://cmake.org/files/v3.21/

在这里插入图片描述

两个都可以,我下载的是rc2,
在这里插入图片描述
在Ubuntu系统下解压压缩包,找到configure文件,编译源码要用;
在这里插入图片描述

编译

分别在终端按顺序执行以下命令。时间有点长,耐心等待。
命令1:

./configure

命令2:

make

命令3:

sudo make install

到此,cmake bin文件编译好了,但是你查询cmake --version依然是3.5,还需要配置一下路径变量。

配置路径变量

终端执行命令

sudo gedit ~/.bashrc

在打开的文件,最后补充以下两行内容:

export PATH=/usr/local/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

保存并关闭文件。
特别注意:/usr/local/bin 按照自己的实际cmake bin路径填写。
比如我的就是:/home/Desktop/cmake-3.21.1-linux-x86_64/bin

查看此时cmake版本

cmake --version 

直接下载编译好的bin文件

官网下载:https://cmake.org/download/

在这里插入图片描述

打开链接,目前官网cmake-3.28以及上版本不需要自己编译, 只需要配置一下bin路径,这个是升级cmake升级到3.28.x以下版本(如:cmake-3.21.1)中的最后一步;
比如直接下载cmake-3.28.6版本, 解压后就存在bin 文件:
在这里插入图片描述
在bashrc文件中添加如截图中两行内容,我加了一个3.21的,也加了一个3.28的,那么我的版本是3.28,3.21被终端执行覆盖:
在这里插入图片描述
cmake升级版本大概是这样的流程,希望文章对你有用。

相关文章:

  • vuex的配置主要内容
  • k8s集群master故障恢复笔记
  • 华为数通——OSPF
  • linux 简单使用 sftp 和 lftp命令
  • java算法:插入排序
  • 34、shell数组+正则表达式命令
  • 视频监控平台:支持交通部行业标准JT/T905协议(即:出租汽车服务管理信息系统)的源代码的函数和功能介绍及分享
  • 示例:推荐一个应用Adorner做的表单对话框
  • Linux ComfyUI安装使用;Stable Diffusion 3使用
  • day3-xss漏洞(米斯特web渗透测试)
  • 【已解决】在IDEA中使用Git拉取代码时提示:Can‘t update / master has no tracked branch
  • 昇思25天学习打卡营第1天|快速入门
  • Ubuntu 24.04 安装 libaio1 和 libaio-dev
  • 在C++中,构造器(Builder)模式的思考(《C++20设计模式》及常规设计模式对比)
  • 【database1】mysql:DDL/DML/DQL,外键约束/多表/子查询,事务/连接池
  • Docker容器管理
  • GitUp, 你不可错过的秀外慧中的git工具
  • Golang-长连接-状态推送
  • JavaScript设计模式系列一:工厂模式
  • js如何打印object对象
  • LeetCode算法系列_0891_子序列宽度之和
  • 百度小程序遇到的问题
  • 初识MongoDB分片
  • 前端js -- this指向总结。
  • 在Mac OS X上安装 Ruby运行环境
  • 怎样选择前端框架
  • 回归生活:清理微信公众号
  • ​如何防止网络攻击?
  • # Apache SeaTunnel 究竟是什么?
  • # Panda3d 碰撞检测系统介绍
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • ( 10 )MySQL中的外键
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (3)llvm ir转换过程
  • (leetcode学习)236. 二叉树的最近公共祖先
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (二)斐波那契Fabonacci函数
  • (二)原生js案例之数码时钟计时
  • (分类)KNN算法- 参数调优
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (文章复现)基于主从博弈的售电商多元零售套餐设计与多级市场购电策略
  • (学习总结)STM32CubeMX HAL库 学习笔记撰写心得
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)Mysql的优化设置
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • .mp4格式的视频为何不能通过video标签在chrome浏览器中播放?
  • .net 7和core版 SignalR
  • .NET 8.0 发布到 IIS
  • .Net Core 微服务之Consul(三)-KV存储分布式锁
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET MVC第三章、三种传值方式
  • .NET企业级应用架构设计系列之结尾篇
  • .net图片验证码生成、点击刷新及验证输入是否正确