展开菜单
首页 精品内容 本月促销 装机必备 Windows PDF教程 macOS软件 IOS软件 Android AI 专题
全部分类

当前位置:

首页 > 软件教程 > VSCode打造Linux C++开发环境

VSCode打造Linux C++开发环境

本文将分享我的C++编码环境,基于vscode构建,并通过vscode远程连接到Linux系统(remoteLinux)。在Linux环境中,有两种可选的方式:WSL(WindowsSubsystemforLinux)与虚拟机。WSL有许多优点,它与Windows10紧密结合。例如,可以随时通过快捷键shift+右击启动Linuxshell,并使用Linux命令来操作Windows。然而,WSL也有一些缺点,例如无法使用某些网络调试工具,如tcpdump。这个bug自WSL推出以来一直未解

本文目录

    本文将分享我的C++编码环境,基于vscode构建,并通过vscode远程连接到Linux系统(remote Linux)。在Linux环境中,有两种可选的方式:

    WSL(Windows Subsystem for Linux)与虚拟机。WSL有许多优点,它与Windows 10紧密结合。例如,可以随时通过快捷键shift + 右击启动Linux shell,并使用Linux命令来操作Windows。

    基于vscode 打造Linux C++编码环境基于vscode 打造Linux C++编码环境然而,WSL也有一些缺点,例如无法使用某些网络调试工具,如tcpdump。这个bug自WSL推出以来一直未解决:

    $ tcpdump
    tcpdump: socket: Socket type not supported  # 无法启动
    $ date
    Sun Mar  7 22:01:11 CST 2021

    在这种情况下,需要借助虚拟机来完成相关操作。我的使用场景如下:

    当WSL能满足需求时,我通常使用WSL;当WSL无法满足需求时,我则转向使用虚拟机。当然,如果觉得麻烦,也可以只使用虚拟机,除了无法在Windows 10上随时启动Linux shell外,基本无差别。下面将详细介绍如何在vscode中结合WSL和虚拟机构建C++编码环境。

    vscode + WSL

    1. 安装WSL。微软官方文档提供了详细的WSL安装教程,按照步骤即可完成安装。地址:
      https://docs.microsoft.com/zh-cn/windows/wsl/install-win10
    1. 在vscode中安装Remote-WSL插件。打开vscode,按快捷键ctr + shift + X或直接点击左侧栏的Extensions,然后在插件商店中搜索并安装Remote-WSL插件:

    基于vscode 打造Linux C++编码环境3. 在正式介绍之前,先介绍一个vscode的快捷键ctr + shift + p。按下后,会显示一个对话框(如下图),可以在其中输入命令来设置vscode的选项。

    基于vscode 打造Linux C++编码环境此时,在对话框中输入Remote-WSL,下方列表会显示相关的选项,选择第一个Remote-WSL:New Windows:

    基于vscode 打造Linux C++编码环境无需任何配置或输入密码的过程,即可自动进入WSL环境:在左下角的状态栏中会显示WSL:Ubuntu-x标志,表示已进入WSL环境,此时按快捷键:

      ctr + `   # 注意后面还有个 `

    可直接唤起终端,如图中的TERMINAL:

    基于vscode 打造Linux C++编码环境4. 安装编译、调试等必要软件。到此,vscode环境已基本配置完毕。此时WSL中没有软件,甚至不支持基本的make命令,需要手动安装C++编译器和调试器:gcc/g++:sudo apt install g++make:sudo apt install makecmake:sudo apt install cmakegdb:sudo apt install gdb

    由于vscode本身可以作为终端使用,因此进入WSL环境后,直接在vscode-terminal中输入上述安装命令。由于我已安装上述软件,因此再次安装会显示如下:

    基于vscode 打造Linux C++编码环境5. 创建文件夹。下面先编写一个简单的demo来测试如何继续使用。首先创建一个名为demo的文件夹:

      szza@szza:~$ mkdir demo  
      szza@szza:~$ cd demo/  
      szza@szza:~/demo$ 

    如何打开刚创建的demo文件夹?有两种方法:1)直接点击vscode左侧的Open Folder按钮,然后选择刚才创建的/home/szza/demo文件夹即可。

    基于vscode 打造Linux C++编码环境2)按下快捷键ctr + shift + P,然后输入Open Folder,再选择/home/szza/demo文件夹即可。

    基于vscode 打造Linux C++编码环境6. 安装C++相关插件。主要有以下插件:

    C/C++C++ IntellisenseVisual Studio Intellisense Insider基于vscode 打造Linux C++编码环境这样在编写C++代码时,才会提供智能提示、自动调整等功能。上述是基本插件,其他插件可以自己探索发现。

    编写程序后,可以直接在TERMINAL中使用g++编译运行,结果如下:

    基于vscode 打造Linux C++编码环境至此,从安装WSL到在WSL中编译运行C++程序,基本讲解完毕,整个过程无需复杂配置,易于使用。你可能注意到,还缺少一个环节:调试。

    在步骤【4】中已安装gdb调试软件。如果你熟悉gdb,可以直接使用gdb进行调试。如果不熟悉,可以先学习,也可以等我的gdb调试专题文章,预计在毕业答辩后发布。我在阅读开源项目redis6.0、libuv时,都是靠gdb帮我理清了回调函数链路。

    虚拟机 + vscode

    继续提供一个【虚拟机+vscode】的方案,最终可实现与WSL几乎一致的体验。顺便提一下,Windows 10 20H1之前版本不允许同时开启WSL和虚拟机,必须升级到Windows 10 20H1或更高版本,才能同时开启。

    关于虚拟机,本文以Ubuntu为例。具体安装方法不介绍了,网上搜索即可。

    个人建议:为方便起见,可以直接安装Ubuntu-Studio 2020,它包含了常用的编译器和软件,无需自己下载和安装,省事且相对稳定。我自己安装的Ubuntu-2020简洁版虚拟机经常断开连接,但同学们的却没问题。

    开启SSH服务并查看虚拟机的IP地址:

    $ ifconfig
    ens33: flags=4163  mtu 1500
            inet 192.168.183.130  netmask 255.255.255.0  broadcast 192.168.183.255
            inet6 fe80::e8ab:d905:32f5:729e  prefixlen 64  scopeid 0x20
            ether 00:0c:29:cb:4a:97  txqueuelen 1000  (Ethernet)
            RX packets 575  bytes 452238 (452.2 KB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 446  bytes 150254 (150.2 KB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    lo: flags=73  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10
            loop  txqueuelen 1000  (Local Loopback)
            RX packets 337  bytes 259455 (259.4 KB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 337  bytes 259455 (259.4 KB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    如果安装的是简洁版,可能连ifconfig命令都不支持,需要安装网络工具:

    sudo apt install net-tools

    在安装SSH服务之前,先使用ps -e | grep ssh命令查看虚拟机上是否已安装SSH服务:

    $ ps -e | grep ssh
    1017 ?        00:00:00 sshd   # OK
    1294 ?        00:00:00 ssh-agent
    1757 ?        00:00:00 sshd
    1836 ?        00:00:00 sshd

    否则,下面开始安装、启动SSH服务:

    $ sudo apt install openssh-server  # 安装SSH服务
    $ sudo service ssh start           # 启动SSH服务

    对于之前没有开启SSH服务的,现在可以再次查看是否启动了SSH服务:

    $ ps -e | grep ssh
    1017 ?        00:00:00 sshd
    1294 ?        00:00:00 ssh-agent
    1757 ?        00:00:00 sshd
    1836 ?        00:00:00 sshd

    至此,SSH服务器已开启,下面讲解如何从vscode远程连接到虚拟机中。

    vscode连接虚拟机

    1. 在Extensions中,安装Remote-SSH插件。

    2. 按住快捷键ctr + shift + P,在对话框中输入connect,然后选择第一个Remote-SSH:Connect to Host选项即可:

    基于vscode 打造Linux C++编码环境3. 配置虚拟机的IP和端口。在步骤【2】后,会弹出下面的窗口。

    如果你已连接过虚拟机,该虚拟机的IP地址会直接显示在下方。如果确定虚拟机已开启,可以直接连接。否则,需要添加新的虚拟机配置,有两种添加方法:Add New SSH Host选项会引导用户完成Configure SSH Hosts...选项,因此本文直接讲解Configure SSH Hosts...选项。Configure SSH Hosts...选项的作用是直接将虚拟机的IP地址添加到配置文件C:\Users\szza\.ssh\config中。基于vscode 打造Linux C++编码环境在C:\Users\szza\.ssh\config文件中,添加虚拟机的信息:

    基于vscode 打造Linux C++编码环境设置好后,重复【2】的步骤,再次向虚拟机发起连接,就会发现新添加的虚拟机信息已显示在下方,直接点击连接即可:

    基于vscode 打造Linux C++编码环境然后进入下面的界面,输入虚拟机的登录密码即可:

    基于vscode 打造Linux C++编码环境输入完毕,则会进入虚拟机的Linux系统,至此连接任务完成。安装软件的步骤与WSL的步骤【4】【5】【6】一致,按步骤操作即可。

    免密登录虚拟机

    vscode连接WSL无需输入密码,后续任何操作也不需要输入密码。但是vscode和虚拟机的任何操作每次都需要输入密码,会影响使用体验,下面讲解如何免密登录虚拟机。

    1)Windows侧

    首先在Windows上的vscode终端上,输入如下命令,其中"这里任意输入"部分建议使用GitHub账号的邮箱。

    ssh-keygen -t rsa -C "这里任意输入"

    一直按enter即可,最终会在C:\Users\szza\.ssh目录下生成两个文件:

    id_rsa
    id_rsa.pub

    2)虚拟机侧

    在vscode的虚拟终端中输入同样的命令,在/home/codespace/.ssh文件下也会生成id_rsa 和id_rsa.pub文件。

    ssh-keygen -t rsa -C "这里任意输入"

    然后在/home/codespace/.ssh文件下,新建一个文件,名字是authorized_keys,直接将Windows侧目录C:\Users\szza\.ssh下的id_rsa.pub文件内容复制到authorized_keys中,整个免密设置就完成了。

    顺便提一下

    如何将Windows侧的C:\Users\szza\.ssh\id_rsa.pub文件内容复制到虚拟机的/home/codespace/.ssh/authorized_keys中?

    很简单,分别用vscode打开两个文件夹,然后直接复制即可,不需要安装VMWare Tools就能完成。

    基于vscode 打造Linux C++编码环境这种方式,也适用于想将Windows的文件传输到虚拟机中,用vscode打开Windows侧的文件,另一个vscode连接上虚拟机并打开到相应的文件夹,直接复制文件。

    至此,整个vscode免密登录虚拟机的过程讲解完毕,以后任何操作都不需要输入密码了。

    过程中可能出现的问题

    vscode + WSL一般都没问题,都是Windows原生产品。在remote到虚拟机时,可能会出现问题,我之前遇到过vscode一直连接不上虚拟机,发现是Windows自带的SSH-Client有问题,自己下载一个git客户端,然后重复上述配置,就完成了。

    基于vscode 打造Linux C++编码环境基于vscode 打造Linux C++编码环境

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    软件教程 IDE
    相关文章 更多
    精品专题 更多
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    macOS软件

    正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

    IOS软件

    正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

    AI

    正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

    Mac软件 更多
    Aperty macOS版
    Aperty macOS版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw macOS版
    AionClaw macOS版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy macOS版
    Loomy macOS版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    AirBuddy 3 macOS版
    AirBuddy 3 macOS版

    AirBuddy 3 是面向 macOS 的蓝牙外设增强工具,可集中查看 AirPods、Beats 与苹果设备电量,提供快速连接、播放控制、电量提醒、桌面小组件和多台 Mac 外设接力等功能。

    AirServer macOS版
    AirServer macOS版

    AirServer macOS版可把 Mac 转换为无线投屏接收端,通过 AirPlay 或 Google Cast 接收手机、平板和电脑画面,并支持多设备同时连接、高清镜像及会话录制,适合家庭娱乐、课堂教学、会议演示和应用展示。

    AnyDesk macOS版
    AnyDesk macOS版

    AnyDesk macOS版是一款适用于远程办公、设备维护和客户支持的远程桌面工具,可连接并操作异地计算机,支持文件传输、无人值守访问、会话权限控制及跨平台协作。

    WINDOWS 更多
    讯飞绘文 网页版
    讯飞绘文 网页版

    讯飞绘文网页版是科大讯飞推出的AI图文创作与内容运营工具,覆盖热点选题、文章生成、稿件校对、智能配图、排版发布和数据复盘等环节,适合自媒体创作者及内容团队在线使用。

    Maya(Autodesk Maya) Windows版
    Maya(Autodesk Maya) Windows版

    Autodesk Maya 是面向影视、电视、动画和游戏行业的专业三维制作软件,集多边形与 NURBS 建模、角色绑定、关键帧和动作捕捉动画、Bifrost 特效模拟、材质开发及 Arnold 渲染于一体,

    Aperty Windows版
    Aperty Windows版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw Windows版
    AionClaw Windows版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy Windows版
    Loomy Windows版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    AirServer Windows版
    AirServer Windows版

    AirServer Windows版可把电脑变成AirPlay、Google Cast和Miracast无线投屏接收端,适合会议演示、课堂教学及家庭大屏分享。发送设备通常无需另装客户端,并可同时接收和智能排列多个镜像会话。