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

news2024/11/16 13:37:57

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

搭建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. 安装相关插件

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

    插件优先级说明
    c/c++⭐⭐⭐⭐⭐提供语法检查,一键补全等
    cmake⭐⭐⭐
    cmake-tool⭐⭐⭐
    git_graph⭐⭐⭐⭐⭐整个项目的commit 历史、分支提交、对比等
    git history⭐⭐⭐⭐⭐可以查看某一行、单个文件的提交记录
    gitlens⭐⭐确实牛逼好吧,但是收费我只能给你打2星,富哥可以梭哈
    bookmarks⭐⭐⭐⭐⭐快捷键直接插入书签,省去看大型项目找不到函数定义的苦恼
  4. 配置编译环境
    一键搞定 VSCode 下的 C/C++基本开发环境配置

如何编译、运行、debug

配置编译环境

  • task.json
  • launch.json

如何构建一个模块级项目

参考&感谢

  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.coloradmin.cn/o/1568198.html

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

相关文章

第14章 数据结构与集合源码

一 数据结构剖析 我们举一个形象的例子来理解数据结构的作用&#xff1a; 战场&#xff1a;程序运行所需的软件、硬件环境 战术和策略&#xff1a;数据结构 敌人&#xff1a;项目或模块的功能需求 指挥官&#xff1a;编写程序的程序员 士兵和装备&#xff1a;一行一行的代码 …

GPT4不限制使用次数了!GPT5即将推出了!

今天登录到ChatGPT Plus账户&#xff0c;出现了如下提示&#xff1a; 已经没有了数量和时间限制的提示。 更改前&#xff1a;每 3 小时限制 40 次&#xff08;团队计划为 100 次&#xff09;&#xff1b;更改后&#xff1a;可能会应用使用限制。 GPT-4放开限制 身边订阅了Ch…

C语言——字符串函数

一.前言 我们在日常写代码的过程中&#xff0c;经常会对字符串进行处理的过程。而在C语言中的<string.h>中&#xff0c;包含了众多字符串函数&#xff0c;我们可以借助这些字符串函数来对其进行各种操作。 二.strlen函数 strlen函数的作用是求出所传字符串的长度。该函…

图片改大小尺寸怎么改?几个修改图片尺寸的方法

日常生活和工作中&#xff0c;图片的大小和尺寸对于我们的工作和生活都至关重要&#xff0c;因此我们经常需要调整图片的大小。我们都知道压缩图是一款功能强大的图片在线处理工具&#xff0c;那么用它怎么调整图片大小呢&#xff1f;下面就让我们一起来看一下具体的操作步骤。…

网络与并发编程(二)

线程_信号量 互斥锁使用后&#xff0c;一个资源同时只有一个线程访问。如果某个资源&#xff0c;我们同时想让N个(指定数值)线程访问&#xff1f;这时候&#xff0c;可以使用信号量。 信号量控制同时访问资源的数量。信号量和锁相似&#xff0c;锁同一时间只允许一个对象(进程…

Python项目21:一个简单的记账系统(收入+支出+查询)

------------★Python练手项目源码★------------ Python项目源码20&#xff1a;银行管理系统&#xff08;开户、查询、取款、存款、转账、锁定、解锁、退出&#xff09; Python项目19&#xff1a;学员信息管理系统&#xff08;简易版&#xff09; Python项目18&#xff1a;…

IDEA配置本地Maven(解决依赖下载缓慢)

1.下载Maven Maven下载页 根据需要选择下载其中一个&#xff0c;我选了zip格式的 将下载好的apache-maven-3.9.5解压到你想要的目录下 2.配置系统环境 设置系统环境变量 MAVEN_HOME 为安装路径的bin目录 变量名&#xff1a;MAVEN_HOME 变量值&#xff1a;写你的 apache-m…

远程登录服务器(ubuntu20.04)在自己账号下的虚拟环境(python3.6)安装Jupyter并连接pycharm使用

参考&#xff1a;Jupyter notebook/lab安装及远程访问 1、安装jupyter pip install notebook遇到的问题&#xff1a; &#xff08;1&#xff09;运行这个指令之前尝试了好多方法都安不上 此前还尝试了更新pip之类的&#xff0c;大家安不上也可以先更新pip试试。 &#xff0…

list的常用接口底层实现与介绍

目录 概念&#xff1a; list的基本结构&#xff1a; list的迭代器⭐❤&#xff1a; 自定义类型的完善&#xff1a; const的迭代器&#xff1a; insert erase&#xff1a; size empty push_back 、push_front 、pop_back、pop_front swap 、operator 析构函数…

记录Http访问服务接口出现 301 Moved Permanently

记录Http访问服务接口出现 301 Moved Permanently 一、项目背景 ​ 在A服务中 需要通过远程调用 B服务接口 获取数据。A项目与B项目部署在不同的服务接口中。 请求接口响应界面 ​ 在调用B项目的接口时&#xff0c;响应的数据一直为 301 Moved Permanently Html代码&#x…

【星计划★C语言】c语言初相识:探索编程之路

&#x1f308;个人主页&#xff1a;聆风吟_ &#x1f525;系列专栏&#xff1a;星计划★C语言、Linux实践室 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. ⛳️第一个c语言程序二. ⛳️数据类型2.1 &#x1f514;数据单位2.2 &…

2024福建三支一扶报名流程,超全超详细!

2024年福建三支一扶报名已经开始&#xff0c;请注意时间&#xff01; ⚠2024年福建省省级“三支一扶”计划招募岗位1070个 报名时间&#xff1a;4月1日8:00至4月17日17:00 审查考核&#xff1a;4月18日至5月10日 确定派遣人员&#xff1a;5月11日至5月31日 报名入口&#xff1…

Day66-企业级防火墙iptables精讲2

Day66-企业级防火墙iptables精讲2 1. iptables项目案例2&#xff1a;局域网共享上网&#xff1a;2. iptables项目案例3&#xff1a;外网IP的端口映射到内网IP的端口3. 老男孩教育iptables项目案例4&#xff1a;IP一对一映射&#xff08;DMZ&#xff09;4. 老男孩教育iptables项…

jdbc连SQL server,显示1433端口连接失败解决方法

Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“connect timed out。请验证连接属性。确保 SQL Server 的实例正在主机上运行&#xff0c;且在此端口接受 TCP/IP 连接…

在project模式下自定义Implementation Strategies

Implementation Settings定义了默认选项&#xff0c;当要定义新的implementation runs时会使用这些选项&#xff0c;选项的值可以在Vivado IDE中进行配置。 图1展示了“Settings”对话框中的“implementation runs”对话框。要从Vivado IDE打开此对话框&#xff0c;请从主菜单中…

文件管理--fscanf,fread,fwrite和fprintf

fprintf函数&#xff1a;对于fprintf函数&#xff0c;它和printf一样&#xff0c;但是它的表达式为&#xff1a;int fprintf ( FILE * stream, const char * format, ... );和printf的很相似&#xff0c;但有不一样。它是格式化输出函数&#xff0c;代码为&#xff1a; #includ…

2024年清明节安装matlab 2024a

下载安装离线支持包SupportSoftwareDownloader_R2024a_win64&#xff0c;地址https://ww2.mathworks.cn/support/install/support-software-downloader.html&#xff0c;运行软件&#xff08;自解压运行&#xff09;&#xff0c;登录账号&#xff08;需要提前在官网注册&#x…

Ubuntu部署BOA服务器

BOA服务器概述 BOA是一款非常小巧的Web服务器&#xff0c;源代码开放、性能优秀、支持CGI通用网关接口技术&#xff0c;特别适合用在嵌入式系统中。 BOA服务器主要功能是在互联嵌入式设备之间进行信息交互&#xff0c;达到通用网络对嵌入式设备进行监控&#xff0c;并将反馈信…

MPLS-基础、LSR、LSP、标签、体系结构

MPLS技术 MPLS基础 MPLS&#xff1a;转发数据时&#xff0c;只在网络边缘分析IP报文头&#xff0c;不在每一跳都分析&#xff0c;节约了转发时间。 MPLS&#xff1a;Multiprotocol Label Switching&#xff0c;多协议标签交换骨干网技术。主要应用&#xff1a;VPN、流量工程…

基于wordcloud、matplotlib等对某东评论数据情感分析-Python数据分析项目

基于wordcloud、matplotlib等对某东评论数据情感分析 文章目录 基于wordcloud、matplotlib等对某东评论数据情感分析1 数据导入及预处理1.1 数据导入1.2 数据描述1.3 数据预处理 2 情感分析2.1 情感分析2.2 情感分直方图2.3 词云图2.4 关键词提取 3 积极评论与消极评论3.1 积极…