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. ip_srcroute函数

    当响应某个分组时,I C M P和标准的运输层协议必须把分组带的任意源路由逆转.逆转源路由是通过i p _ s r c r o u t e保存的路由构造的. 7 7 7 - 7 8 3 i p _ s ...

  2. postgresql backup

    #!/bin/sh # Database backup script # Backup use postgres pg_dump command: # pg_dump -U <user> ...

  3. C# 任务、线程、同步(五)

    1.数据流使用  TPL Data Flow 类库 class Program { static void Main(string[] args) { // ActionBlock(); // Sou ...

  4. SpringBoot启动过程原理(转)

    1.1 Springboot启动: @SpringBootApplication public class ServerApplication { public static void main(St ...

  5. loj#6285 数列分块入门 9 ( 回 滚 )

    题目 :  链接 :https://loj.ac/problem/6285 题意:给出一个长为 n的数列,以及 n个操作,操作涉及询问区间的最小众数. 思路:虽然这不是一道 回滚莫队题,就是 暴力分块 ...

  6. char 类型的数组转换到CSting

    首先,字符串“abc”在CString的保存格式是‘a’,'\0','b','\0','c','\0','\0','\0'; 从中可以看出它是以‘\0’,'\0',结束的. 当char ch[6]: ...

  7. Vs中包含目录、库目录、附加包含目录、附加库目录、附加依赖项之详解

    VS项目中的包含目录.库目录.附加包含目录.附加库目录.附加依赖项均在"项目->属性->配置属性"下进行配置,具体说明如下: VC++目录: 包含目录:寻找#inclu ...

  8. JavaWeb_(Spring框架)注解配置

    系列博文 JavaWeb_(Spring框架)xml配置文件  传送门 JavaWeb_(Spring框架)注解配置 传送门 Spring注解配置 a)导包和约束:基本包.aop包+context约束 ...

  9. 树莓派中将caplock映射为esc键

    据说,喜欢vimer都呵caplock有仇,明明caplock占着原来esc的位置,却从来没有起到应有的作用,你说气人吗,没关系,我改啊:将下面语句加入到.bashrc中,启动即可xmodmap -e ...

  10. 通过JDBC API访问数据库的基本步骤

    1.获取要访问的数据库的JDBC驱动程序的类库文件,把它放到classpath中. 2.在程序中加载并注册JDBC驱动程序.例如,以下代码用于加载并注册MySQL驱动程序: //加载MySQL Dri ...