WSL2安装ContOS7并更新gcc

目录

  • WSL2安装CentOS7
    • 下载安装包
    • 安装
    • 启动CentOS7
  • CentOS7更换国内源
  • gcc
    • 从源码安装gcc
    • 卸载gcc
  • CMake中使用gcc
  • 关于linux配置文件
  • 参考

WSL2安装CentOS7

Windows11官方WSL2已经支持Ubuntu、Open SUSE、Debian。但是没有centos,所以centos的安装方式略有不同。

下载安装包

下载安装包:https://github.com/mishamosher/CentOS-WSL?tab=readme-ov-file
在这里插入图片描述

安装

找到一个空间大点的盘,解压这个zip,然后双击CentOS7.exe
在这里插入图片描述
等待一会就安装好了,在powershell中执行

wsl --list

就可以看到安装好的子系统了,我自己装了好几个。

在这里插入图片描述
关于wsl的操作可以执行

wsl --help

查看更多参数

启动CentOS7

在powershell中执行

wsl -d CentOS7

即可启动CentOS7。

CentOS7更换国内源

比较常用的有阿里源,清华源等,这是阿里源的地址,其中有更换源的教程。

gcc

从源码安装gcc

进到centos里之后,首先从这里这里你需要的gcc版本,然后解压。类似:

wget https://ftp.gnu.org/gnu/gcc/gcc-9.2.0/gcc-9.2.0.tar.gz
tar xf gcc-9.2.0.tar.gz

如果找不到wget就用yum安装

yum install wget

在下载的同时可以装一下开发工具

yum groupinstall "Development tools" -y

编译安装gcc

cd gcc-9.2.0
# Configure the build, --disable-multilib支持64位,--enable-languages=c,c++仅编译C和C++编译器
./configure --disable-multilib --enable-languages=c,c++# Build and install
make -j8
sudo make install

卸载gcc

gcc没有类似make uninstall的命令,只能手动删除。但是文件比较多,可是使用脚本删除。但是我们不知道要删除哪些文件,可以重新将gcc安装到一个指定临时的路径,之后根据临时路径中的文件,删除默认安装路径(/usr/local/)的文件

rm -rf gcc-9.2.0  # 直接重新configure有些路径还是默认的,所以直接删了,重新解压
tar xf gcc-9.2.0.tar.gz
cd gcc-9.2.0
./configure --disable-multilib --enable-languages=c,c++ --prefix=/home/work/gcc-deps/gcc-9.2.0_install
make -j8
sudo make install
cd /home/work/gcc-deps/gcc-9.2.0_install# [注意]防止误操作,你可以先执行echo,确认没有问题,再执行rm
find . -type f -print0 | while IFS= read -r -d '' file; do basename="$(basename -- "$file")"; find /usr/local/ -type f -name "$basename" -exec echo {} +; donefind . -type f -print0 | while IFS= read -r -d '' file; do basename="$(basename -- "$file")"; find /usr/local/ -type f -name "$basename" -exec rm {} +; done

CMake中使用gcc

安装了gcc 9.2.0,但是cmake中找到的还是gcc 4.8.0,有两种方式设置gcc

  1. 命令行参数
cmake -D CMAKE_C_COMPILER=/path/to/gcc/bin/gcc -D CMAKE_CXX_COMPILER=/path/to/gcc/bin/g++ 
  1. 修改CMakeLists.txt
SET(CMAKE_C_COMPILER "/home/hhb/gcc-9.2.0/bin/gcc")
SET(CMAKE_CXX_COMPILER "/home/hhb/gcc-9.2.0/bin/g++")
project(PROJECT_NAME)  # 注意需要project之前

关于linux配置文件

linux下主要有四个配置文件:/etc/profile 、/etc/bashrc 、/root/.bashrc 、/root/.bash_profile。

  • /etc/profile 设置的是系统全局环境和登录系统的一些配置,该配置对所有用户生效; ​
  • /etc/bashrc 是shell全局自定义配置文件,主要用于自定义 shell,该配置对所有用户的shell都生效;
  • /root/.bashrc 用于单独自定义root用户的 bash,只对root用户的bash生效,如果要使elk用户生效,则需要配置/home/elk/.bashrc文件
  • /root/.bash_profile 用于单独自定义root用户的系统环境,只对root用户生效,如果要使elk用户生效,则需要配置/home/elk/.bash_profile。

这四个配置文件的加载顺序如下:

​ /etc/profile -> /etc/bashrc -> /root/.bashrc -> /root/.bash_profile

参考

  • https://blog.csdn.net/jiexijihe945/article/details/132067793
  • https://www.cnblogs.com/renshengdezheli/p/14131943.html
  • https://ioflood.com/blog/install-gcc-command-linux/#:~:text=In%20most%20Linux%20distributions%2C%20the,command%20sudo%20yum%20install%20gcc%20.
  • https://stackoverflow.com/questions/19816275/no-acceptable-c-compiler-found-in-path-when-installing-python
  • https://wangchujiang.com/linux-command/c/yum.html#:~:text=yum%E5%91%BD%E4%BB%A4%E6%98%AF%E5%9C%A8Fedora,%E5%9C%B0%E4%B8%80%E6%AC%A1%E6%AC%A1%E4%B8%8B%E8%BD%BD%E3%80%81%E5%AE%89%E8%A3%85%E3%80%82
  • https://stackoverflow.com/questions/17275348/how-to-specify-new-gcc-path-for-cmake

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

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

相关文章

VehicleSPY的安装与使用

VehicleSPY介绍 Vehicle Spy 是美国英特佩斯公司的一款集成了诊断、节点/ECU仿真、数据获取、自动测试和车内通信网络监控等功能的工具,Vehicle Spy软件支持的应用场景很多,无法一一列举,以下是一些常见的应用: 总线监控&#x…

解锁IDEA中Git/SVN Issue Navigation功能:80%程序员都不懂的秘密武器~

文章目录 前言什么是 Git Issue Navigation?配置 Git Issue Navigation1. 打开设置2. 导航到 Issue Navigation 设置3. 添加新的 Issue Navigation 规则具体示例配置 使用 Git Issue Navigation在提交信息中使用 Issue ID实际导航到连接 优点1. 快速定位问题2. 提高…

低代码+定制:优化项目管理的新方案

引言 在当今快速变化的商业环境中,企业需要更加灵活、高效的项目管理工具。低代码平台作为一种新的开发方式,因其能够快速构建应用程序而受到广泛关注。与此同时,软件定制开发仍然是满足特定复杂需求的重要手段。在项目管理中,低代…

javaEE——Servlet

1.web开发概述 所谓web开发,指的是从网页中向后端程序发送请求,与后端程序进行交互 2.java后端开发环境搭建 web后端(javaEE)程序需要运行在服务器中的,这样前端才可以访问得到 3.服务器是什么? ①服务器就是一款软件,可以向其发送请求&#…

【ubuntu18.04】 局域网唤醒 wakeonlan

ai服务器经常因为断电,无法重启,当然可以设置bios 来电启动。 这里使用局域网唤醒配置。 自动开关机设置 工具:ethtool 端口 : enp4s0 Wake-on: d 表示禁用Wake-on: g 激活 ,例如:ethtool -s eth0 wol g 配置/etc/rc.local ,这个文件不存在,自己创建工具下载 tengxun W…

网络研究观:网络犯罪简报

通过犯罪研究人员精选的新闻提要了解最新的全球网络犯罪威胁。 了解不同的数字欺诈以及如何保护自己。 1. 网络犯罪分子冒充 CBI 和 IB 官员:KP 加尔各答警察局警告公民,诈骗者通过发送虚假的 CBI 和 IB 通知来勒索钱财,指控他们在线观看儿…

Python特征工程 — 1.2 特征分箱

目录 1 什么是特征分箱 2 分箱的重要性及其优势 3 有监督分箱 3.1卡方分箱原理 3.2 决策树分箱 4 无监督分箱 4.1 等距分箱 4.2 等频分箱 4.3 分位数分箱 实验数据:链接:https://pan.baidu.com/s/1yT1ct_ZM5uFLgcYsaBxnHg?pwdczum 提取码&…

大数据可视化实验(八):大数据可视化综合实训

目录 一、实验目的... 1 二、实验环境... 1 三、实验内容... 1 1)Python纵向柱状图实训... 1 2)Python水平柱状图实训... 3 3)Python多数据并列柱状图实训.. 3 4)Python折线图实训... 4 5)Python直方图实训...…

Echarts-仪表盘

1.案例一 1.1代码 option {"series": [{"type": "gauge", "startAngle": 180, "endAngle": 0, "min": 0, "max": 100, "radius": "100%","center": ["50%"…

linux下安装kkFileView4

kkFileView为文件文档在线预览解决方案,该项目使用流行的spring boot搭建,易上手和部署,基本支持主流办公文档的在线预览,如doc,docx,xls,xlsx,ppt,pptx,pdf,txt,zip,rar,图片,视频,音频等等 安装kkFileView前需要安装LibreOffic…

复制 pdf 的表格到 markdown 版本的Typora 或者 word 中

在 pdf 中选中复制表格内容,直接粘贴到 typora 中失败,可以使用 txt文件和 excel 做过渡。 准备一个空的 txt 文件,将 pdf 中表格的数据复制粘贴到txt文件中,文本内容会以空格分开,如下图的形式: 打开 exc…

深入学习 Kafka(2)- Partition 和 Topic

1. Partition的作用 Topic是逻辑的概念,Partition是物理的概念: Partition 对一个 Topic 的消息进行物理上的分离,让消息可以分布在不同的实体机器上,可以提升系统吞吐量和并行处理能力。每个Partition可以有多个副本&#xff08…

Windows 获取打印机及端口号方法 (C#)

1. 打开注册表编辑器 regedit 2.选择如下配置 计算机\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Device 其中 “Ne01:” 为端口号 3. 代码 C# using System; using Microsoft.Win32;class Program {static void Main(){string registryPath "SOF…

【C语言】分支(选择)和循环语句

目录 简述选择语句简述if语句单if结构语法格式 if-else结构语法结构 语法结构 循环结构break和continuewhile循环语法结构 for循环语法结构 do while循环语法结构 简述 在c语言中分支和循环语句是极其重要的,就像生活中你难免要做一些判断和循环往复做一些事。 选…

静态IP代理:保障网络稳定的核心技术

静态IP代理作为一种重要的网络工具,因其稳定性和持久性,受到越来越多用户的青睐。本文将深入探讨静态IP代理的定义和优势。 静态IP代理是什么? 静态IP代理是指在代理服务器中分配一个固定的IP地址,用户在使用过程中始终使用同一个…

【CSS in Depth 2 精译】2.2 em 和 rem + 2.2.1 使用 em 定义字号

当前内容所在位置 第一章 层叠、优先级与继承第二章 相对单位 2.1 相对单位的威力 2.1.1 响应式设计的兴起 2.2 em 与 rem ✔️ 2.2.1 使用 em 定义字号 ✔️2.2.2 使用 rem 设置字号 2.3 告别像素思维2.4 视口的相对单位2.5 无单位的数值与行高2.6 自定义属性2.7 本章小结 2.…

linux和mysql基础指令

Linux中nano和vim读可以打开记事文件。 ifdown ens33 ifup ens33 关闭,开启网络 rm -r lesson1 gcc -o code1 code1.c 编译c语言代码 ./code1 执行c语言代码 rm -r dir 删除文件夹 mysql> show databases-> ^C mysql> show databases; -------…

面对全球新能源汽车合作发展创维汽车如何实现共赢

由全球新能源汽车合作组织(筹)主办、中国电动汽车百人会承办的首届全球新能源汽车合作发展论坛(GNEV2024)于6月27日,6月28日在新加坡金沙会议展览中心召开。创维汽车国际营销公司总经理齐奎源受邀参会并作出分享。 本届大会以推动全球新能源汽车产业协同发展与合作…

RK3568平台(USB篇)USB HID设备

一.USB HID设备简介 USB HID设备主要用于和计算机进行交互通信,典型的USB HID类设备包括USB键盘、USB鼠标、USB游戏手柄等等,这些都是日常生活中常见的设备。以USB接口的鼠标为例,打开计算机的“设备管理器”,可以在“鼠标和其他…

设计高并发秒杀系统:保障稳定性与数据一致性

✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心哦!✨✨ 🎈🎈作者主页: 喔的嘛呀🎈🎈 目录 引言 一. 系统架构设计 1. 系统架构图 二、 系统流程 三…