ubuntu 20.04 安装与切换多个版本cmake,安装多个版本gcc

1.安装多版本cmake

1)查看当前系统自带cmake版本及安装位置:

~$: cmake --version

如:

cmake version 3.16.3

~$: which cmake

如:

/opt/cmake/cmake-3.16.3

2)下载对应的cmake,如:

https://cmake.org/files/v3.10/cmake-3.10.0-Linux-x86_64.tar.gz

将新下载的cmake安装到/opt/cmake/cmake-3.10.0

3)制作一个脚本 :cmake_change, 用于切换cmake不同版本

#!/bin/bashkeys="/opt/cmake/cmake-"
cmake1='/opt/cmake/cmake-3.10.0/bin/'
cmake2='/opt/cmake/cmake-3.16.3/bin/'
cmake_version="$1"OLD_IFS="$IFS" # 保存系统默认的分隔符
IFS=":" # 将分隔符设置为冒号,为了下面取出环境变量里面每个路径
path_array=($PATH) # 将环境变量变成数组,以上面设置的冒号分隔符为界限
IFS="$OLD_IFS" # 恢复默认的系统分隔符
export PATH="" # 清空当前shell的环境变量
for p in ${path_array[@]}
doif [[ $p =~ $keys ]]thencontinue # 如果旧的环境变量里面还有了某个cmake版本,则直接跳过,先不加入环境变量fiexport PATH=${PATH}:${p} # 将之前的环境变量的路径挨个加入现在的环境变量里面
doneif [[ $cmake1 =~ $cmake_version ]] # 将脚本传入的指定版本的cmake路径加入新的环境变量里面
thenexport PATH=${PATH}:${cmake1}
elseexport PATH=${PATH}:${cmake2}
fiecho "change cmake version to ${cmake_version}"

注意给此脚本付可执行属性。

4) 在 ~/.bashrc 文件添加两行:

alias cmake3_10_0='source ~/cmake_change 3.10.0/bin'
alias cmake3_16_3='source ~/cmake_change 3.16.3/bin'

5)执行切换:

~$:cmake3_16_3

~$:cmake3_10_0

用 cmake --verision验证。

参考:linux下如何方便的切换cmake版本_cmake版本切换-CSDN博客

2. 安装与切换多版本gcc或g++

1) 查看当前已安装的gcc

~/$ ls /usr/bin/gcc*

2)安装对应的版本

apt-get install gcc-7

3)多版本切换设置

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 90 --slave /usr/bin/g++ g++ /usr/bin/g++-7
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 80 --slave /usr/bin/g++ g++ /usr/bin/g++-8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 70 --slave /usr/bin/g++ g++ /usr/bin/g++-9

4)版本切换

#切换gcc版本
update-alternatives --config gcc
 

5) 删除某个gcc版本的选项的话,可以使用

sudo update-alternatives --remove gcc /usr/bin/gcc-7.5

再使用apt-remove删除即可

————————————————
参考:安装多版本的gcc_g++编译器_ubuntu安装多版本gcc-CSDN博客
参考:ubantu20 安装多个版本的gcc/gc++编译器-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/218175.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在vue3代码中,进行if判断的时候,使用值的时候忘记使用.value而导致的问题

问: 回答: 所以,我的代码中进行isAndroid的值的判断的时候,判断它是否是false的时候,需要加上isAndroid.value才能获取到,否则获取不到, 然而写法错误,却还是进入了安卓的判断, 问: 回答:

vue配置path路径别名

// vue.config.js const path require(path);//引入path模块 function resolve(dir) {return path.join(__dirname, dir) }默认代表src configureWebpack: {resolve: {extensions: [.js, .vue, .json],alias: {: resolve(src),~: process.cwd(),public: resolve(public),compo…

Chart 9 Adreno GPU的 OpenCL 扩展

文章目录 前言9.1 OS-dependent vendor extensions9.1.1 Performance hint (cl_qcom_perf_hint)9.1.2 Priority hint for context creation (cl_qcom_priority_hint)9.1.3 Recordable command queue (cl_qcom_recordable_queues)9.1.4 cl_qcom_protected_context9.1.5 cl_qcom_…

深入理解网络 I/O 多路复用:Epoll

🔭 嗨,您好 👋 我是 vnjohn,在互联网企业担任 Java 开发,CSDN 优质创作者 📖 推荐专栏:Spring、MySQL、Nacos、Java,后续其他专栏会持续优化更新迭代 🌲文章所在专栏&…

Odoo:行业领先的免费开源供应链管理系统

先进且开源的供应链管理系统和全球供应链协作优化方案 为满足复杂的供应链和库存管理要求,如今绝大多数企业都不得不部署多个供应链管理软件和库存管理系统软件。如何利用一个库存管理与供应链管理软件,跨地区、跨时区地管理现代供应链?Odoo…

Cocos Creator:坐标系

Cocos Creator:坐标系 坐标系节点位置坐标转换v3.8 实现原理(不想了解可以直接跳过)简单示例:(干货or解决方案在这里!) 锚点缩放和旋转 总结心得 在 Cocos Creator 3.8 中,节点坐标系…

使用入耳耳机对耳朵有损害吗?入耳耳机和骨传导耳机哪款更值得入手?

由于入耳式耳机的传声原理,长时间使用是会对耳朵造成损害的,骨传导耳机相比与入耳耳机,不用入耳佩戴,还能在一定程度上保护听力,所以骨传导耳机更值得入手。 一、入耳耳机和骨传导耳机有什么不同 人的听觉系统分为搜…

lammps编译(2Aug2023、intel2020、rtx4070ti)

说明: [rootnode101 ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [rootnode101 ~]# gcc -v Using built-in specs. COLLECT_GCCgcc COLLECT_LTO_WRAPPER/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper Target: x86_64-redhat-lin…

修复漏洞:Diffie-Hellman Key Agreement Protocol 资源管理错误漏洞(CVE-2002-20001)

1、背景 在安全检测流程中,发现爆出这个漏洞 2、修复方案 echo "kexalgorithms curve25519-sha256,curve25519-sha256libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521" >> /etc/ssh/sshd_configsystemctl restart sshd

Vmd+lstm代码详解 完整代码数据可直接运行

项目视频讲解:Vmd+lstm时间序列预测分类回归预测代码详解 完整代码可直接运行_哔哩哔哩_bilibili 项目演示效果: 代码详解: # -*- coding: utf-8 -*- # 导入库pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple import pandas as pd import numpy as np fr…

QVTK 可视化

#ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow>#include <vtkNew.h> // 智能指针 #include <QVTKOpenGLNativeWidget.h> #include <vtkCylinderSource.h> // 圆柱#include <vtkPolyDataMapper.h&g…

OpenHarmony应用开发——在标准OpenHarmony上运行应用-标准OpenHarmony工程设置

一、前言 前面我们创建了一个工程并使其在HarmonyOS系统上运行&#xff0c;本文我们来阐述一下如何在标准的OpenHarmony开发板或系统上运行。 二、详细步骤 1.下载并配置OpenHarmony SDK 首先&#xff0c;打开Settings. 将SDK选择为OpenHarmony&#xff0c;第一次选择路径应该…

Modbus RTU和Modbus TCP的区别 深入篇

目录 1 传输方式不同 2 硬件接口不同 3 校验码不同 4 指令内容不同 4.1 Modbus RTU 4.1.1 功能码为03&#xff0c;表示读寄存器 4.1.2 功能码为10&#xff0c;表示写多个寄存器 4.2 Modbus TCP 4.2.1 功能码为03&#xff0c;表示读寄存器 4.2.2 回复异常报文 5 传输速…

【软考:系统集成项目管理】之 项目管理一般知识

文章目录 1. 项目1.1 项目定义1.2 项目目标 2. 信息系统集成项目3. 项目管理3.1 项目管理的定义 1. 项目 1.1 项目定义 项目是为达到特定的目的&#xff0c;使用一定资源&#xff0c;在确定的期间内&#xff0c;为特定发起人提供独特的产品、服务或成果而进行的一系列相关关联…

java SSM教师工作量管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM 教师工作量管理系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要…

2023年12月16日(星期六)骑行樱花谷

2023年12月16日 (星期六) 骑行樱花谷(赏冬樱花&#xff09;&#xff0c;早8:30到9:00&#xff0c; 郊野公园西门集合&#xff0c;9:30准时出发 【因迟到者&#xff0c;骑行速度快者&#xff0c;可自行追赶偶遇。】 偶遇地点:郊野公园西门集合 &#xff0c;家住东&#xff0c;南…

vue实现自动打字效果(带光标效果)

代码介绍(其实就是通过字符串截取加定时拼接完成的,我相信有时间都能琢磨出来,来这里就是为了省事) 上vue页面代码: <template><div idApp><h2>{{text}}<span ref"fou" class"fousdis">{{_}}</span></h2></div>…

【数学建模】《实战数学建模:例题与讲解》第十二讲-因子分析、判别分析(含Matlab代码)

【数学建模】《实战数学建模&#xff1a;例题与讲解》第十二讲-因子分析、判别分析&#xff08;含Matlab代码&#xff09; 基本概念时间判别费歇判别贝叶斯判别 习题10.31. 题目要求2.解题过程3.程序4.结果 习题10.6&#xff08;1&#xff09;1. 题目要求2.解题过程——对应分析…

任意文件读取漏洞

使用方法php://filter/readconvert.base64-encode/resourcexxx 任意文件读取漏洞 php://filter/readconvert.base64-encode/resourceflag 在url后边接上 以base64的编码形式 读取flag里面的内容 php://filter/readconvert.base64encode/resourceflag 用kali来解码 创建一个文…

anaconda3 升级python版本

Anaconda 是一个流行的Python发行版本&#xff0c;它包括了科学计算常用的许多库。你可以使用 Anaconda 来管理和更新你的 Python 环境以及包。以下是通过 Anaconda 升级 Python 版本的基本步骤&#xff1a; 1. 更新 Anaconda: 打开命令行或Anaconda Prompt&#xff0c…