首页 > 系统相关 >C++ wsl2 ubuntu 环境配置

C++ wsl2 ubuntu 环境配置

时间:2024-08-22 09:17:18浏览次数:9  
标签:-- wsl2 Ubuntu wsl apt C++ 版本 ubuntu Clion

目前学习C++,配合Ubuntu进行开发, IDE 使用Clion,这里记录一下环境准备

WSL2

C++一般是用在linux下,这里就用Ubuntu进行开发,考虑到window系统,这里准备用wsl2.

虚拟化

wsl2 要系统支持虚拟化,一般在bios中进行处理,成功之后,任务管理器 --> 性能

适用于Linux的Windows子系统

wsl更新

wsl --set-default-version 2  //设置wsl2
wsl --update    //升级
wsl --version   //查看最终版本

本机的version如下:

WSL 版本: 2.2.4.0
内核版本: 5.15.153.1-2
WSLg 版本: 1.0.61
MSRDC 版本: 1.2.5326
Direct3D 版本: 1.611.1-81528511
DXCore 版本: 10.0.26091.1-240325-1447.ge-release

 Ubuntu 安装

直接在 微软商店中查找,我这里选择了 Ubuntu 22.04.3 LTS版本

 直接点击安装,安装成功后输入账号密码,就进入命令行模式。

这里要默认的源是官方,这里修改为国内源,修改前先备份。改完后进行常规升级操作

 cp /etc/apt/sources.list /etc/apt/sources.list.back //备份
 sudo sed -i 's|//.*archive.ubuntu.com|//mirrors.ustc.edu.cn|g' /etc/apt/sources.list //改默认源配置
sudo apt update
sudo apt upgrade

C++

linux下要用到gcc,这里在ubuntu中进行安装

sudo apt-get install g++ build-essential
gcc --version

出现一下命令就表面安装成功

gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

现在写一个简单 hello world 测试一下gcc,先用vim 编辑一个 cpp文件

#include <iostream>
int main(){

        std::cout<<"hello world"<<'\n';
        return 1;
}

然后进行编译

g++ -std=c++17 hello.cpp
./a.out //输入 hello world

Clion

Clion IDE和 Ideal 类似,安装完毕,模式是用 自带的MinGW进行编译

 这里要设置为wsl,Clion有默认支持,但在设置之前要进行cmake等库安装

sudo apt-get install cmake gcc clang gdb build-essential

安装完毕 Settings --> Build, Execution, Deployment  -> Toolchains. 点击add

这样就设置为 wsl中进行编译,一切准备就休,现在用 Clion新建一个工程:

 这样相关的文件就是 Ubuntu中,此时编译如果cmake版本过低, Clion会有提示,可以根据提示修改 CMakeLists.txt中 底的版本好,我这边设置为

cmake_minimum_required(VERSION 3.22)

结尾

以上就是C++ 环境的配置。

 

标签:--,wsl2,Ubuntu,wsl,apt,C++,版本,ubuntu,Clion
From: https://www.cnblogs.com/julyluo/p/18372998

相关文章

  • C++——STL——vector容器
    vector的头文件#include<vector>vector的声明与初始化vector<类型>变量=赋值;//整型vector<int>a={1,2,3,4};//浮点型 vector<double>b={1.1,2.2,3.2,4.4};//字符型 vector<char>c={'a','b','c'......
  • Docker受限?试试Podman,手动搭建Ubuntu容器镜像
    Docker受限?试试Podman,手动搭建Ubuntu容器镜像最近,我打算用Docker来搭建一个开发环境,但遗憾的是,我发现DockerHub无法使用,甚至国内的镜像源也无法访问。这让我有些头疼,但好在我在寻找解决方案的过程中,发现了一个Docker的替代方案:Podman。Podman的使用方法与Docker几乎一模......
  • 「字符串」前缀函数|KMP匹配:规范化next数组 / LeetCode 28(C++)
    概述为什么大家总觉得KMP难?难的根本就不是这个算法本身。在互联网上你可以见到八十种KMP算法的next数组定义和模式串回滚策略,把一切都懂得特别混乱。很多时候初学者的难点根本不在于这个算法本身,而是它令人痛苦的百花齐放的定义。有的next数组从0下标开始,有的从1开始;有的表......
  • 引发C++程序内存泄漏的常见原因分析与排查方法总结
    目录1、概述2、内存泄漏与程序的位数3、调用哪些接口去动态申请内存?4、引发内存泄漏的常见原因总结4.1、通过malloc/new等动态申请的内存,在使用完后,没有调用free/delete去释放(也可能是调用了上面讲到的HeapAlloc或VirtualAlloc等API接口)4.2、函数调用者调用内部申请内存......
  • 掌握C++中的std::list:高效处理插入与删除的最佳选择
    在C++标准模板库(STL)中,std::list是一个非常重要的容器,属于序列式容器。与std::vector和std::deque不同,std::list是一个双向链表(doublylinkedlist),其设计更适合于频繁的插入和删除操作,而不是随机访问。本文将深入探讨std::list的实现原理、使用场景以及与其他容器的对比......
  • 昇腾 - AscendCL C++应用开发 线程安全的队列
    昇腾-AscendCLC++应用开发线程安全的队列flyfishC++mutex各种各样的互斥锁mutex、timed_mutex、recursive_mutex、shared_mutexC++线程间同步的条件变量std::condition_variable和std::condition_variable_anyC++提供的智能指针unique_ptr、shared_ptr、wea......
  • C++智能指针配合STL模板类
    代码 #include<unordered_map>#include<set>#include<memory>classResID{public:usingSP=std::shared_ptr<ResID>;ResID()=default;ResID(conststd::string&id,conststd::string&type):m_id(id......
  • C++实现web token加密生成验证
    代码 #include"jwt-cpp/traits/boost-json/traits.h"#include<boost/json/src.hpp>//Youmayrequirethisifyouarenotbuildingitelsewhere#include<iostream>#include<sstream>voidtestToken(){ usingsec=std::chrono::......
  • C++ 有向图拓扑排序算法
    代码 #include<algorithm>#include<cassert>#include<functional>#include<map>#include<memory>#include<queue>#include<set>#include<unordered_set>#include<vector>namespacejc{templa......
  • 昇腾 - AscendCL C++应用开发 目标检测中的非极大值抑制NMS和计算候选边界框之间的交
    昇腾-AscendCLC++应用开发目标检测中的非极大值抑制(NMS,Non-MaximumSuppression)涉及计算候选边界框之间的交并比(IOU,IntersectionoverUnion)flyfish结构体BBox:定义了一个边界框的数据结构,包含中心坐标、宽高、置信度分数、类别索引和输出索引。函数IOU:计算两个......