CMake 是一个可扩展的开源系统,以独立于编译器的方式在操作系统中管理生成过程。与许多跨平台系统不同,CMake 旨在与本机生成环境结合使用。放置在每个源目录中的简单配置文件(称为 CMakeLists.txt 文件)用于生成标准生成文件(例如,在 Unix 上生成文件,在 Windows MSVC 中生成项目/工作区),这些文件以通常的方式使用。CMake 可以生成本机生成环境,该环境将编译源代码、创建库、生成包装和任意组合生成可执行文件。CMake 支持就地和出位生成,因此可以支持来自单个源树的多个生成。CMake 还支持静态和动态库生成。CMake 的另一个不错的功能是,它生成一个缓存文件,该文件旨在与图形编辑器一起使用。例如,当 CMake 运行时,它会查找文件、库和可执行文件,并且可能会遇到可选的生成指令。此信息将收集到缓存中,用户可能会在生成本机生成文件之前更改这些信息。

更新过程

首先下载CMake的源代码,登录CMake官网下载列表即可下载源码。

aria2c -s 4 -c https://cmake.org/files/LatestRelease/cmake-3.15.1.tar.gz

注意:请根据自己的实际情况下载。

然后解压程序。

tar -zxvf cmake-3.15.1.tar.gz

然后进入到目录,并编译。需要注意的是需要保证你的电脑最初有一版本的CMake,否则可能将无法正常编译。

cd cmake-3.15.1
mkdir -p build
cd build
cmake ..
make -j10

如果你才用上述的命令编译,那么默认安装位置是/usr/bin,所以会覆盖你原先的目录,并且不用配置环境变量,当需要其他版本时候可以重新覆盖安装。

cd cmake-3.15.1/build
sudo make install -j10

程序会自动安装CMake到你的用户目录里面,然后检查版本信息:

cmake --version

Python脚本如下

为了方便大家使用,下面有一个Python脚本可以全称自动化的帮助你安装和更新CMake,只需要在下面设置你的版本信息和超级用户的密码即可,然后运行python3 cmake_upgrade.py指令即可自动安装和更新CMake。

pms={
"sudo":"123456", # 在这里设置你的超级用户密码
"version":"3.15.2" # 在这里设置你的版本信息
}

Python脚本

import os

def download(pms):
os.system("echo {} | sudo -S apt-get install -y aria2".format(pms["sudo"]))
os.system("aria2c -s 2 -c -o cmake-{}.tar.gz https://cmake.org/files/v{}/cmake-{}.tar.gz".format(pms["version"],pms["version"][0:pms["version"].rindex('.')],pms["version"]))
print("download the file done!") os.system("tar -xvf cmake-{}.tar.gz".format(pms["version"]))
print("tar the file done!") def themake(pms):
os.system("mkdir -p build && cd build && rm -rf ./* && cmake ../cmake-{}/ && make -j".format(pms["version"]))
print("make done!") def build(pms):
print("begin the task!")
download(pms)
themake(pms)
os.system("cd build && (echo {} | sudo -S make install -j)".format(pms["sudo"]))
print("---------------------------")
print("|\tInstall Done")
print("---------------------------")
os.system("cmake --version")
print("---------------------------") pms={
"sudo":"123456", # 在这里设置你的超级用户密码
"version":"3.15.2" # 在这里设置你的版本信息
} build(pms)

注意的是程序使用的是默认位置,即:覆盖原先的CMake,所以还是要慎重。

CMake版本升级的更多相关文章

  1. cmake 版本升级

    1.在网址 https://cmake.org/files/v3.1/下载   cmake-3.1.0.tar.gz 2.解压 3.执行  ./configure 4.执行 make 5. 执行   ...

  2. ubuntu中cmake版本升级

    在网上下载一个项目,编译提示版本太低 CMake Error at CMakeLists.txt: (cmake_minimum_required): CMake 编译方式安装(需要openssl) ...

  3. CentOS7 升级 cmake

    编译cmake文件时,报错:CMake 3.0.0 or higher is required. You are running version 2.8.12.2 很明显,这是 cmake 版本过低导 ...

  4. Centos 7 编译安装llvm 8.0.0

    参考连接:https://www.cnblogs.com/BinBinStory/p/7499527.html https://blog.csdn.net/llwy1428/article/detai ...

  5. mysql5.7.17版本升级源码方式及恢复主主复制

    版本升级--自测 从库 ------------ 停止主从复制 stop slave 全库备份 mysqldump -u root -p -S mysql.sock --all-databases&g ...

  6. android studio 使用CMAKE

    前言 之前,每次需要边写C++代码的时候,我的内心都是拒绝的.  1. 它没有代码提示!!!这意味着我们必须自己手动敲出所有的代码,对于一个新手来说,要一个字母都不错且大小写也要正确,甚至要记得住所有 ...

  7. CMake最好的学习资料

    本文为转载,阅读不友好,请先查看原文:https://blog.gmem.cc/cmake-study-note 收下为原文内容================> 基础知识 CMake简介 CM ...

  8. 使用cmake自动构建工程

    公司引擎是用cmake根据目标平台来构建工程的,刚接触的时候深深体会到cmake的方便:如果目标平台是windows,它可以帮你自动构建出vs工程:如果是安卓,自动构建出eclipse工程,如果是IO ...

  9. Oracle安装部署,版本升级,应用补丁快速参考

    一.Oracle安装部署 1.1 单机环境 1.2 Oracle RAC环境 1.3 Oracle DataGuard环境 1.4 主机双机 1.5 客户端部署 二.Oracle版本升级 2.1 单机 ...

随机推荐

  1. 甘特图、Data Editors控件新玩法—DevExpress WPF v19.2

    通过DevExpress WPF Controls,你能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案. 无论是Office办公软件的衍 ...

  2. Sql Server中REPLACE函数的使用

    在sql的使用过程当中,我们偶尔会遇到这样一种情况,就是需要改变数据的存储形式,比如数据库某一张表(Info)当中有一个字段Educational(学历),以前存储的是Json数组,现在由于需求的改变 ...

  3. java获取web项目下文件夹的路径方法

    方法一: String realPath=request.getSession().getServletContext() .getRealPath("upload"); 方法二: ...

  4. C/C++应用--Window下获取硬件信息(CPU, 硬盘,网卡等)

    一.头文件如下: #include <Windows.h> #include <string> #include <iostream> #include <w ...

  5. allowMultiQueries=true mybatis 要多行sql执行,一定要注意

    allowMultiQueries=true 这个配置已经出现多次问题了,这次由于切换时多数据源,搞配置的同志不知道从哪里copy的配置,只换了我们的链接,我们之前配置了好多配置都丢失了,我的代码中有 ...

  6. JavaScript Call函数原理

    call原理分析,一定要看最后的例子. 1.call使用例子 function add(c, d) { return this.a + this.b + c + d; } , b: }; consol ...

  7. Spring框架IOC解说

    控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合.当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象.你可以认为IoC与JN ...

  8. jenkins创建工程

    1.新建一个工程 2.添加工程名,点击创建一个自由分格的软件项目 3.配置源码管理 4.增加工程构建步骤,选中调用顶层maven目标

  9. JAVA基础知识|堆和栈

    一.java六个存储数据的地方 1)寄存器(register):这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部.但是寄存器的数量极其有限,所以寄存器由编译器根据需求进行分配.你不能直 ...

  10. fiddler 基本知识(一)

    工作原理: fiddler,原理是在本机开启了一个http代理服务器,默认监听127.0.0.1:8888. 打开fiddler之后,会帮我们设置ie代理,虽然只设置了ie,但整个计算机都通过整个代理 ...