vscode + wsl1 搭建远程C/C++开发环境

记录第一次搭建环境过程。

搭建C/C++开发环境有很多种方式,如

  1. MinGW + vscode(MinGW 是GCC的Windows版本,本地编译环境)
  2. SSH隧道连接 + vscode(远程Linux主机)
  3. wsl + vscode(远程Linux环境)
  4. CLion(Jetbrains开发的C/C++ IDE,没错就是开发idea、Pycharm的那个捷克公司。自带MinGW环境)
  5. visual studio(微软开发的C/C++ IDE)

选择wsl + vscode其实非常不适合小白折腾,但是考虑到国内的研发环境(内网)与习惯(总喜欢白嫖),那开源方案肯定是首选了,所以1、2、3方案其实是最适合的(毕竟4、5要收费嘛,老板怎么可能舍得出钱🤣)。由于这里是自己学习,以及为了更愉快方便的学习Linux,选择了wsl + vscode,
其实也可以选择SSH隧道连接 + vscode(远程Linux主机),但装个虚拟机,或者买个服务器多不划算🤣,故直接梭哈wsl + vscode。这样更能够无缝迁移并适配国内企业的真实研发环境。

安装wsl1环境

  1. windows打开如下设置
  2. 打开Microsoft Store(微软商城),搜索Ubuntu,找到Ubuntu 20.04 LTS,点击“获取”等待下载完成
  3. 下载完成后,设置用户名或密码,设置完后,安装Ubuntu系统完成

安装gcc环境

  1. 进入windows命令行,键入wsl,进入Linux shell。
  2. 执行如下命令,把原来的apt源重命名为sources.list.bak,将阿里云的源作为apt默认使用的源
mv -f /etc/apt/sources.list /etc/apt/sources.list.bak
cat > /etc/apt/sources.list<< EOF
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
EOF
  1. 然后 sudo apt-get update ,更新apt 镜像信息。
  2. 再然后 sudo apt-get install build-essential ,一键安装 包括 gcc, g++, 和make。
  3. 再安装手册页(关于如何使用 GNU/Linux 进行开发) sudo apt-get install manpages-dev
  4. 验证 GCC 编译器的安装是否成功,使用gcc --version命令。打印 GCC 版本。
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.3) 9.4.0
Copyright (C) 2019 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.
  1. 安装gdb sudo apt-get install gdb

VScode搭建远程开发环境

  1. 首先就是下载宇宙最强编辑器 vscode。

  2. 然后安装各种插件,首当其冲就是wsl,安装好之后就再左侧导航栏有个远程连接图标,点击它就能连接到ubuntu环境了。

    这里默认是在外网情况下,如果你在内网,可能会下载vscode-server失败
    ,在网络无问题时,这个东西下载解压后会自动放到 .vscode-server/bin/ c o m m i t i d ( v s c o d e 的 c o m m i t i d )目录下,否则你要手动下载 : h t t p s : / / u p d a t e . c o d e . v i s u a l s t u d i o . c o m / c o m m i t : {commitid}(vscode的commitid)目录下,否则你要手动下载:https://update.code.visualstudio.com/commit: commitidvscodecommitid)目录下,否则你要手动下载:https://update.code.visualstudio.com/commit:{commit_id}/server-linux-x64/stable(注意把:${commit_id}替换成对应的Commit ID。
    然后根据提示更改相应文件的执行权限,直至成功即可。

  3. 安装cmake,c/c++,git 等相关插件

    这玩意待后续记录,研究下哪种方式编译运行调试更好些

如何编译、运行、debug

如何构建一个模块级项目

参考&感谢

  1. 如何在 Ubuntu 20.04/22.04 上安装 GCC 编译器
  2. ubuntu20.04 apt 安装报 E: Unable to correct problems, you have held broken packages.
  3. gcc releases
  4. win10开启wsl系统

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

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

相关文章

flink1.18源码本地调试环境

01 源码本地调试环境搭建 1. 从github拉取源码创建本地项⽬ https://github.com/apache/flink.git 可以拉取github上官⽅代码 https://github.com/apache/flink.git GitHub - apache/flink: Apache Flink 2. 配置编译环境 ctrlaltshifts &#xff08;或菜单&#xff09;打…

node.js的错误处理

当我打开一个不存在的文件时&#xff0c;错误如下&#xff1a; 在读取文件里面写入console.log&#xff08;err&#xff09;&#xff0c;在控制台中可以看到我的错误代码类型&#xff1a;文件不存在的错误代码 ENOENT。见更多错误代码---打开node.js官方API文档Error 错误 | N…

Redhat 7.9 安装dm8配置文档

Redhat 7.9 安装dm8配置文档 一 创建用户 groupadd -g 12349 dinstall useradd -u 12345 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba passwd dmdba二 创建目录 mkdir /dm8 chown -R dmdba:dinstall /dm8三 配置/etc/security/limits.conf dmdba soft nproc 163…

Springboot Thymeleaf 实现数据添加、修改、查询、删除

1、引言 在Spring Boot中使用Thymeleaf模板引擎实现数据的添加、修改、查询和删除功能&#xff0c;通常步骤如下&#xff1a; 在Controller类中&#xff0c;定义处理HTTP请求的方法。创建Thymeleaf模板来处理表单的显示和数据的绑定。 2、用户数据添加 1、 在Controller类中…

【javaScript】DOM编程入门

一、什么是DOM编程 概念&#xff1a;DOM(Document Object Model)编程就是使用document对象的API完成对网页HTML文档进行动态修改&#xff0c;以实现网页数据和样式动态变化的编程 为什么要由DOM编程来动态修改呢&#xff1f;我们就得先理解网页的运行原理&#xff1a; 如上图&a…

达梦配置ODBC连接

达梦配置ODBC连接 基础环境 操作系统&#xff1a;Red Hat Enterprise Linux Server release 7.9 (Maipo) 数据库版本&#xff1a;DM Database Server 64 V8 架构&#xff1a;单实例1 下载ODBC包 下载网址&#xff1a;https://www.unixodbc.org/ unixODBC-2.3.0.tar.gz2 编译并…

C++的并发世界(六)——互斥解决数据共享冲突

0.数据共享的问题 在多个线程中共享数据时。需要注意线程安全问题。如果多个线程同时访问同一个变量。并且其中至少有一个线程对该变量进行了写操作。那么就会出现数据竞争问题。数据竞争可能会导致程序崩溃,产生来定义的结果,或者得到错误的热果。为了避免数据竞争问题。需要…

Java快速入门系列-1(Java概述)

第一章&#xff1a;Java概述 1.1 Java的发展历程1.2 Java的特点与优势1.2.1 特点1.2.2 优势 1.3 Java生态系统介绍1.4 Java在当前技术领域的应用案例 1.1 Java的发展历程 Java语言由Sun Microsystems公司于1995年推出&#xff0c;由James Gosling领导的Green Team小组研发而成…

SpringCloud - 如何本地调试不会注册到线上环境(Nacos)?

问题描述 有时候我们需要本地调试注册到 Nacos 上&#xff0c;但是会影响线上服务的 Feign 请求打到本地导致不通影响了线上业务。 原因分析 一般最传统的解决方案就是修改本地 bootstrap.yml 的 spring.cloud.nacos.discovery.namespace spring:application:name: app-serv…

【调度工具】Azkaban用户手册

目录 一、概述 1.1 Azkaban 是什么 1.2 Azkaban 特点 1.3 Azkaban 与 Oozie 对比 功能 工作流定义 工作流传参 定时执行 资源管理 工作流执行 工作流管理 1.4 Azkaban 运行模式及架构 Azkaban 三大核心组件 Azkaban有两种部署方式 Azkaban Web Server Azkaban …

基于Python深度学习的中文情感分析系统(V2.0)

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

docker版Elasticsearch安装,ik分词器安装,用户名密码配置,kibana安装

1、安装es和ik分词器 创建映射目录并赋予权限&#xff1a; mkdir -p /docker_data/elasticsearch/conf mkdir -p /docker_data/elasticsearch/data mkdir -p /docker_data/elasticsearch/plugins chmod -R 777 /docker_data/elasticsearch编写配置文件&#xff1a; vi /dock…

今天也是学python的一天

4.2&#xff1a; ~~~if else语句 ~~~range函数 无法正常输出 ~~~len , zip my_list [apple, banana, cherry] indices range(len(my_list))for index, value in zip(indices, my_list):print(f"Index: {index}, Value: {value}") ~~~enumerate animals [&qu…

Rust Mozilla 的编程语言

Rust 是 Mozilla 的一个新的编程语言&#xff0c;由 web 语言的领军人物 Brendan Eich&#xff08;js 之父&#xff09;&#xff0c;Dave Herman 以及 Mozilla 公司的 Graydon Hoare 合力开发。 创建这个新语言的目的是为了解决一个很顽疾的问题&#xff1a;软件的演进速度大大…

Transformer模型-用jupyter演示逐步计算attention

学习transformer模型-用jupyter演示如何计算attention&#xff0c;不含multi-head attention&#xff0c;但包括权重矩阵W。 input embedding&#xff1a;文本嵌入 每个字符用长度为5的向量表示&#xff1a; 注意力公式&#xff1a; 1&#xff0c;准备Q K V&#xff1a; 先 生…

Linux系统——网络管理

此文章以红帽Linux9版本为例进行讲解。 红帽Linux9版本的网络管理十分全面&#xff0c;可在多处进行网络配置的修改&#xff0c;但需要注意的是&#xff0c;在9版本内&#xff0c;用户可在配置文件内进行网络配置的修改&#xff0c;但系统不会执行修改的命令&#xff0c;而在9之…

基于STM32+VS1053B的MP3设计

目录 一、整体介绍 二、模块介绍 1. stm32主控 2. VS1053B音频解码 3. 按键 4. OLED显示 三、程序代码&#xff1a; 资料下载地址&#xff1a;基于STM32VS1053B的MP3设计 一、整体介绍 话不多说&#xff0c;先看看整体原理图&#xff1a; 制作出来的实…

【Pt】马灯贴图绘制过程 05-铁丝与渲染出图

目录 效果 步骤 一、基本材质 二、浮尘 三、渲染 效果 步骤 一、基本材质 CtrlAlt鼠标右键选中指定的纹理集 在智能材质中将“Iron Forged Old”加入图层 将智能材质“Iron Forged Old”文件夹打开&#xff0c;将图层“Base”和“Edge”的基本颜色改暗一点 二、浮尘 新…

推荐算法策略需求-rank model优化

1.pred_oobe (base) [rusxx]$ pwd /home/disk2/data/xx/icode/baidu/oxygen/rus-pipeline/pipeline-migrate/UserBaseActiveStatPipeline/his_session (base) [rusxx]$ sh test.sh 2. user_skill_history_dict_expt2包含userid [workxx]$ vim /home/work/xx/du-rus/du_rus_o…

B树、B+树、哈夫曼树

目录 1. B树2. B树3. 哈夫曼树 1. B树 特点&#xff1a;一个节点当中可以有多个值&#xff0c;节点内部key 值是有序的&#xff0c;节点内部存储的是key-value类型的数据 磁盘中文件存储用B树。 4阶B树一个节点最多三个key值 5阶B树一个节点最多四个key值 B树有很多的分支&…