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.pswp.cn/diannao/39500.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/39500.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/39500.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【面試題】網絡IP協議(第六篇)

1.簡述IP協議的作用。 IP協議(Internet Protocol)是TCP/IP協議族中的核心協議之一,主要用于在互聯網上進行數據傳輸。它的主要作用包括: 尋址:IP協議通過IP地址來唯一標識網絡中的每一臺設備,確保數據包能…

家政小程序的開發:打造現代式便捷家庭服務

隨著現代生活節奏的加快,人們越來越注重生活品質與便利性。在這樣的背景下,家政服務市場迅速崛起,成為許多家庭日常生活中不可或缺的一部分。然而,傳統的家政服務往往存在信息不對稱、服務效率低下等問題。為了解決這些問題&#…

mindspore打卡之量子測量

mindspore打卡之量子測量 我們可以看到,采樣1000中,00’出現了503次,11’出現了497次(由于測量具有隨機性,每次運行結果會略有不同),采樣結果符合概率分布,細微的誤差是由模擬器噪聲…

【D3.js in Action 3 精譯】1.2.2 可縮放矢量圖形(三)

當前內容所在位置 第一部分 D3.js 基礎知識 第一章 D3.js 簡介 1.1 何為 D3.js?1.2 D3 生態系統——入門須知 1.2.1 HTML 與 DOM1.2.2 SVG - 可縮放矢量圖形 ?? 第一部分第二部分【第三部分】?? 1.2.3 Canvas 與 WebGL(精譯中 ?)1.2.4 C…

gameui C++的代碼

gameui C的代碼 #include <graphics.h> #include "gameboard.h" const int WIDTH 560; const int HEIGHT 780; const int GRID_SIZE 120; class GameUi { private: public:GameUi(GameBoard& gb) {// 初始化圖形窗口initgraph(WIDTH, HEIGHT);// 設置…

小米內推官

小米硬件提前批開始啦&#xff01;&#xff01;&#xff01;&#xff01; 請使用小米公司內推碼: Q9BN21S 招聘對象&#xff1a;25屆秋招 中國內地:畢業時間2025.01-2025.12 中國港澳臺及海外:畢業時間2025.07-2025.12 工作地點&#xff1a;北京、南京、武漢、深圳、上海等…

C++中Ranges庫的基本用法,如何簡化和增強對集合的操作。

Ranges庫的基本用法 什么是Ranges庫&#xff1f; C20引入的Ranges庫&#xff08;<ranges>&#xff09;是一個強大的工具集&#xff0c;旨在簡化和增強對集合&#xff08;如數組、向量等序列容器&#xff09;的操作。它提供了一套用于操作序列的功能性接口&#xff0c;使…

獨立站新風口:TikTok達人帶貨背后的雙贏合作之道

TikTok以其龐大的用戶基礎、高度互動性和創新的內容形式&#xff0c;為獨立站帶來了前所未有的發展機遇。獨立站與TikTok達人的合作&#xff0c;不僅能夠幫助獨立站快速提升品牌知名度和銷售額&#xff0c;還能為TikTok達人帶來更多商業機會和影響力。本文Nox聚星將和大家探討獨…

Android sdk 安裝已經環境配置

&#x1f34e;個人博客&#xff1a;個人主頁 &#x1f3c6;個人專欄&#xff1a;Android ?? 功不唐捐&#xff0c;玉汝于成 目錄 正文 一、下載 二、安裝 三、環境配置 我的其他博客 正文 一、下載 1、大家可去官網下載 因為需要魔法 所以就不展示了 2、去下面這…

經典shell運維實用腳本~

以下腳本可謂日常工作常用到的經典腳本案例。希望可以幫助大家提升提升自動化能力&#xff01; 1、監控100臺服務器磁盤利用率腳本 #!/bin/bashHOST_INFOhost.infofor IP in $(awk /^[^#]/{print $1} $HOST_INFO); do USER$(awk -v ip$IP ip$1{print $2} $HOST_INFO) P…

【JS】純web端使用ffmpeg實現的視頻編輯器-視頻合并

純前端實現的視頻合并 接上篇ffmpeg文章 【JS】純web端使用ffmpeg實現的視頻編輯器 這次主要添加了一個函數&#xff0c;實現了視頻合并的操作。 static mergeArgs(timelineList) {const cmd []console.log(時間軸數據,timelineList)console.log("文件1",this.readD…

常用目標檢測的格式轉換腳本文件txt,json等

常用目標檢測的格式轉換腳本文件txt,json等 文章目錄 常用目標檢測的格式轉換腳本文件txt,json等前言一、json格式轉yolo的txt格式二、yolov8的關鍵點labelme打的標簽json格式轉可訓練的txt格式三、yolo的目標檢測txt格式轉coco數據集標簽的json格式四、根據yolo的目標檢測訓練…

Vue+ElementUi實現錄音播放上傳及處理getUserMedia報錯問題

1.Vue安裝插件 npm install --registryhttps://registry.npmmirror.com 2.Vue頁面使用 <template><div class"app-container"><!-- header --><el-header class"procedureHeader" style"height: 20px;"><el-divid…

vue2 接口文檔

const assetmanagementIndex (params) > getAction("/asset/assetmanagementsystem/page", params); //資產管理制度表分頁列表 const assetmanagementPost (params) > postAction("/asset/assetmanagementsystem", params); //資產管理制度表新增…

維護Nginx千字經驗總結

Hello , 我是恒 。 維護putty和nginx兩個項目好久了&#xff0c;用面向底層的思路去接觸 在nginx社區的收獲不少&#xff0c;在這里談談我的感悟 Nginx的奪冠不是偶然 高速:一方面&#xff0c;在正常情況下&#xff0c;單次請求會得到更快的響應&#xff1b;另一方面&#xff0…

從零開始學量化~Ptrade使用教程——安裝與登錄

PTrade交易系統是一款高凈值和機構投資者專業投資軟件&#xff0c;為用戶提供普通交易、籃子交易、日內回轉交易、算法交易、量化投研/回測/實盤等各種交易工具&#xff0c;滿足用戶的各種交易需求和交易場景&#xff0c;幫助用戶提高交易效率。 運行環境及安裝 操作系統&…

昇思25天學習打卡營第3天 | 數據集 Dataset

數據是深度學習的基礎&#xff0c;高質量的數據輸入將在整個深度神經網絡中起到積極作用。MindSpore提供基于Pipeline的數據引擎&#xff0c;通過數據集&#xff08;Dataset&#xff09;和數據變換&#xff08;Transforms&#xff09;實現高效的數據預處理。其中Dataset是Pipel…

將數據切分成N份,采用NCCL異步通信,讓all_gather+matmul盡量Overlap

將數據切分成N份,采用NCCL異步通信,讓all_gathermatmul盡量Overlap 一.測試數據二.測試環境三.普通實現四.分塊實現 本文演示了如何將數據切分成N份,采用NCCL異步通信,讓all_gathermatmul盡量Overlap 一.測試數據 1.測試規模:8192*8192 world_size22.單算子:all_gather:0.035…

代理IP的10大誤區:區分事實與虛構

在當今的數字時代&#xff0c;代理已成為在線環境不可或缺的一部分。它們的用途廣泛&#xff0c;從增強在線隱私到繞過地理限制。然而&#xff0c;盡管代理無處不在&#xff0c;但仍存在許多圍繞代理的誤解。在本博客中&#xff0c;我們將探討和消除一些最常見的代理誤解&#…

人腦網絡的多層建模與分析

摘要 了解人類大腦的結構及其與功能的關系&#xff0c;對于各種應用至關重要&#xff0c;包括但不限于預防、處理和治療腦部疾病(如阿爾茨海默病或帕金森病)&#xff0c;以及精神疾病(如精神分裂癥)的新方法。結構和功能神經影像學方面的最新進展&#xff0c;以及計算機科學等…