独家记忆是什么意思| 双鱼配什么星座| 毛囊炎是什么症状图片| 老人家头晕是什么原因| 灰配什么颜色好看| 涂防晒霜之前要涂什么| 血型b型rh阳性是什么意思| 用什么泡脚可以活血化瘀疏通经络| 牛逼是什么| 碘伏有什么作用| 一只耳朵响是什么原因| chloe是什么意思| 角头是什么意思| 胎监不过关是什么原因| 手书是什么意思| 肺气不足吃什么食物可以补肺气| 男人交公粮什么意思| 滑脉是什么意思| 黄瓜有什么营养| 为什么吃芒果会过敏| 早餐吃什么最有营养又减肥| 血脂高吃什么食物| 1年是什么朝代| 一厢情愿什么意思| 无的放矢什么意思| 菠萝有什么功效和作用| 减肥晚餐吃什么| 央企董事长什么级别| 77属什么生肖| 海虹是什么| 炎症反应性细胞改变是什么意思| 什么牌子的蛋白质粉比较好| 凉拌菜用什么醋最好| 可塑性是什么意思| 巨蟹跟什么星座最配| 女生肾疼是什么原因| 经期头疼是什么原因| 什么的跳| 什么节日吃汤圆| 什么东西能加不能减| 曹字五行属什么| 胃子老是胀气是什么原因| 什么是复韵母| 三什么开泰| 切除一侧输卵管对女性有什么影响| 一什么鱼| 小白脸什么意思| 做梦梦见火是什么意思| 被虫子咬了涂什么药膏| 为什么不建议光子嫩肤| 米放什么不生虫子| 猪的耳朵像什么| 成双成对是什么生肖| 洛基是什么神| 脚趾痒是什么原因| 骨折吃什么恢复快| 正骨挂什么科| 甲醛会导致什么病| 肩胛骨痛挂什么科| 品牌背书是什么意思| 男人眉毛短是什么面相| 什么鱼最大| 什么是理科什么是文科| hsv1是什么病毒| 努尔哈赤姓什么| 谬论是什么意思| 蜻蜓属于什么类动物| 阴道流黄色分泌物是什么原因| 五谷是什么| 血管瘤有什么危害吗| 和解少阳是什么意思| 女生私密部位长什么样| 嘴歪是什么引起的| 什么食物含铁| 为什么会起鸡皮疙瘩| 血脂四项包括什么| 呛是什么意思| 什么颜色显瘦| 孩子呼吸道感染吃什么药效果最好| 嗓子疼是什么原因引起的| 为什么叫老鸨| 堂哥的女儿叫什么| 全身无力是什么原因| 什么病才吃阿昔洛韦片| 指甲小月牙代表什么| 小蛇吃什么| 肌钙蛋白低说明什么| 什么样的人容易得甲减| 在于是什么意思| 扭转乾坤什么意思| 视力矫正是什么意思| 一个三点水一个令念什么| 耳鸣吃什么药| 尿路感染 吃什么| 蜂胶有什么作用和功效| 月子里生气有什么危害| 股癣用什么药膏好得快| 3月4日是什么星座| 彼岸花又叫什么花| 十万个为什么作者是谁| mia是什么意思| 银屑病用什么药膏| 女人肝火旺吃什么好| 元字五行属什么| 五塔标行军散有什么功效| 梦见已故的父母是什么兆头| 脑瘤早期什么症状| 喝蒲公英茶有什么作用| 经常耳鸣是为什么| 孕妇吃维生素c有什么好处| 生不逢时什么意思| 口胃读什么| ambush是什么牌子| 大雪是什么意思| 支行行长什么级别| 枣子什么时候成熟| 眼色是什么意思| 吗啡是什么| 重庆五行属什么| 白带过氧化氢阳性什么意思| 眼角长脂肪粒是什么原因| ics是什么药| 什么人一年只工作一天脑筋急转弯| 云南为什么叫云南| 屁股上长痘痘是什么原因| 迪奥是什么品牌| 梦见到处都是蛇预示着什么| 1992年出生的是什么命| ap手表是什么牌子| 易胖体质是什么原因造成的| 为什么来完月经下面痒| 2003年属什么生肖| 口腔医学技术是干什么的| azul是什么颜色| 胆囊切除后吃什么好| 皮蛋不能和什么一起吃| 牛加一笔是什么字| 省油的灯是什么意思| 闲的蛋疼是什么意思| 鹿几念什么| 7月1号是什么节| 忤是什么意思| 孕期心情不好对胎儿有什么影响| 食管反流用什么药| 甲减检查什么项目| 仪态什么什么| 12月2日是什么星座| 民营和私营有什么区别| 吃什么丰胸效果最好最快| 身上长癣是什么原因| 肾虚吃什么食物能补| 副高是什么意思| 尿急尿频吃什么药| 更年期出汗多是什么原因| 黑眼圈是什么原因造成的| 一夜白头是什么原因| 户口所在地是什么意思| 什么是终端| 信心是什么意思| 蘖是什么意思| 空调开什么模式最凉快| 梦见蛇是什么预兆| 一把手是什么意思| 狻猊是什么| cu什么意思| 外阴瘙痒用什么药| 纯化水是什么水| 月经颜色发黑是什么原因| 内膜居中是什么意思| 美女什么都没有穿| 慎用是什么意思| 预估是什么意思| 桃花灼灼什么意思| 下嫁是什么意思| 锅包肉用什么淀粉| 做包子用什么面粉| 福建为什么叫八闽| 缺钾最明显的症状是什么| 什么体质容易高原反应| 眉毛下方有痣代表什么| 什么食物铅含量高| 吃什么长胖| 软组织挫伤是什么意思| 头头是道什么意思| 发烧吃什么食物比较好| 什么是传染性软疣| 痛风检查什么项目| 1.13是什么星座| 牛油果树长什么样| 痛风可以吃什么| 数位板是什么| 嘴唇裂口是什么原因| 薛字五行属什么| 生辰八字是指什么| 为什么家里会有隐翅虫| 接触隔离什么意思| 媱五行属什么| zara是什么品牌| 小腿酸胀痛是什么原因| 汉语拼音是什么时候发明的| 为什么脖子老是痒| 呼吸道感染吃什么药| 自然流产的症状是什么样的| 吊兰开花有什么兆头| 眼屎多用什么眼药水| 荼蘼是什么意思| 属狗的幸运色是什么颜色| 男女接吻有什么好处| 膀胱炎什么症状| 73年属什么生肖| ecmo是什么| 大便是绿色的是什么原因| 阿尔茨海默病吃什么药| 姨妈期吃什么| 脸色暗沉发黑是什么原因| 多面手是什么意思| 娘家人是什么意思| 五月十三号是什么日子| 口交是什么| 养阴生津是什么意思| 一个鱼一个完读什么| 生理需要是什么意思| 肌电图主要检查什么病| 入睡困难吃什么药效果最好| 喝啤酒尿多是什么原因| 牛油果树长什么样| 癌症病人吃什么| 天蝎座和什么星座配| 香雪酒属于什么酒| 耳堵是什么| 荷尔蒙是什么意思| 什么血型最稀有| 16岁属什么| 热淋是什么意思| 胸部周围痒是什么原因| 稍纵即逝什么意思| 吃什么东西能通便| 香菇和什么不能一起吃| 胆汁反流是什么意思| 天时地利人和什么意思| 杏林是指什么| 胆疼是什么原因| 藤茶是什么茶| 什么力气| 下午6点是什么时辰| 直肠息肉有什么症状| 宫颈活检cin1级是什么意思| 红色菜叶的菜是什么菜| 脸黄是什么原因造成的| 大水牛是什么意思| 风热感冒是什么意思| 小什么名字好听| 咏柳的咏是什么意思| 鸡胗是什么器官| 儿童乘坐高铁需要什么证件| 卧轨什么意思| 什么药治肠炎效果最好| 燕窝有什么功能| 泌乳素高是什么原因引起的| 奥利司他排油是什么油| 嘎哈是什么意思| 堃读什么| 驹是什么意思| 为什么会拉黑屎| 百度
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在WSL中配置VS Code C++开发环境完整教程

报阅传媒2016年营收9919万元 营收同比增长56%

原创
作者头像
码事漫谈
发布于 2025-08-04 19:14:42
发布于 2025-08-04 19:14:42
百度 这个缺点也是李学鹏一直在恒大最饱受争议的。 18620
代码可运行
举报
文章被收录于专栏:程序员程序员C++
运行总次数:0
代码可运行

在Windows系统上进行C++开发时,借助Windows Subsystem for Linux (WSL)可以获得接近原生Linux的开发体验。本文将详细介绍如何在WSL环境中配置VS Code,搭建高效的C++开发环境,包括编译器安装、项目创建、代码编写、调试配置等全过程。

环境准备

前置要求

在开始前,请确保已安装以下软件:

  • Visual Studio Code
  • VS Code的WSL扩展
  • Windows Subsystem for Linux (WSL)及所选Linux发行版(本文以Ubuntu为例)

设置Linux开发环境

  1. 启动WSL终端:在Windows搜索栏输入"Ubuntu"并打开
Ubuntu in Start Menu
Ubuntu in Start Menu
  1. 首次启动会要求设置用户名和密码,请记住此密码,后续使用sudo命令时需要
  2. 更新系统包列表并安装GNU编译器工具和GDB调试器:
代码语言:bash
复制
sudo apt-get update
sudo apt-get install build-essential gdb
  1. 验证安装是否成功:
代码语言:bash
复制
whereis g++
whereis gdb

如果安装成功,会显示g++和gdb的路径信息。

  1. 创建项目目录:
代码语言:bash
复制
mkdir projects
cd projects
mkdir helloworld
cd helloworld

在WSL中启动VS Code

在WSL终端中,进入项目目录并输入以下命令启动VS Code:

代码语言:bash
复制
code .

首次启动时,VS Code会自动下载并安装WSL服务器组件。成功启动后,VS Code窗口标题栏会显示"WSL: Ubuntu",状态栏会显示远程连接状态。

Remote context in the Status bar
Remote context in the Status bar

安装C/C++扩展

  1. 在VS Code中打开扩展面板(Ctrl+Shift+X)
  2. 搜索"C/C++"扩展(由Microsoft提供)
  3. 如果已在本地安装,点击"Install in WSL"按钮将其安装到WSL环境中
Install in WSL button
Install in WSL button

安装完成后需要重新加载VS Code以生效。

创建和编写C++代码

  1. 在VS Code文件资源管理器中,点击"新建文件"按钮,创建helloworld.cpp
New File title bar button
New File title bar button
  1. 粘贴以下示例代码:
代码语言:cpp
代码运行次数:0
运行
复制
#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main()
{
    vector<string> msg {"Hello", "C++", "World", "from", "VS Code", "and the C++ extension!"};
    
    for (const string& word : msg)
    {
        cout << word << " ";
    }
    cout << endl;
}
  1. 保存文件(Ctrl+S)

探索IntelliSense功能

VS Code的C/C++扩展提供了强大的IntelliSense功能:

  • 悬停在vectorstring上查看类型信息
  • 输入msg.时会自动显示成员函数列表
  • 自动补全功能可通过Tab键触发
Statement completion IntelliSense
Statement completion IntelliSense

运行C++程序

  1. 确保helloworld.cpp是当前活动文件
  2. 点击编辑器右上角的"播放"按钮
  3. 在弹出的编译器选择中,选择"g++ build and debug active file"
C++ debug configuration dropdown
C++ debug configuration dropdown

VS Code会自动生成tasks.json文件,用于配置构建任务。成功运行后,在集成终端中会看到输出:

代码语言:txt
复制
Hello C++ World from VS Code and the C++ extension!

理解tasks.json

自动生成的tasks.json位于.vscode目录下,内容如下:

代码语言:json
复制
{
  "version": "2.0.0",
  "tasks": [
    {
      "type": "shell",
      "label": "C/C++: g++ build active file",
      "command": "/usr/bin/g++",
      "args": ["-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}"],
      "options": {
        "cwd": "/usr/bin"
      },
      "problemMatcher": ["$gcc"],
      "group": {
        "kind": "build",
        "isDefault": true
      },
      "detail": "Task generated by Debugger."
    }
  ]
}

关键参数说明:

  • command: 指定编译器路径(g++)
  • args: 编译参数,-g表示生成调试信息
  • ${file}: 当前活动文件
  • ${fileDirname}/${fileBasenameNoExtension}: 输出可执行文件路径和名称

调试C++程序

  1. 在代码行号旁点击设置断点(或按F9)
  2. 从播放按钮下拉菜单中选择"Debug C/C++ File"
screenshot of breakpoint in helloworld.cpp
screenshot of breakpoint in helloworld.cpp

调试控制面板提供了常用调试功能:

  • 继续(F5)
  • 单步跳过(F10)
  • 单步进入(F11)
  • 单步退出(Shift+F11)
  • 重启(Ctrl+Shift+F5)
  • 停止(Shift+F5)
Debugging controls
Debugging controls

在调试过程中,可以通过"变量"窗口查看当前变量值,通过"监视"窗口添加自定义监视表达式。

Debugging windows
Debugging windows

自定义调试配置

如需自定义调试设置,可以创建launch.json文件:

  1. 打开"运行和调试"面板(Ctrl+Shift+D)
  2. 点击"创建launch.json文件"
  3. 选择"C++ (GDB/LLDB)"环境
  4. 选择"g++ build and debug active file"配置

生成的launch.json文件如下:

代码语言:json
复制
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "C/C++: g++ build and debug active file",
      "type": "cppdbg",
      "request": "launch",
      "program": "${fileDirname}/${fileBasenameNoExtension}",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "environment": [],
      "externalConsole": false,
      "MIMode": "gdb",
      "miDebuggerPath": "/usr/bin/gdb",
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ],
      "preLaunchTask": "C/C++: g++ build active file"
    }
  ]
}

关键配置说明:

  • program: 指定要调试的可执行文件
  • args: 传递给程序的命令行参数
  • stopAtEntry: 设置为true可在main函数入口处暂停
  • preLaunchTask: 指定调试前执行的构建任务

高级配置:c_cpp_properties.json

如需自定义C/C++扩展配置(如编译器路径、包含路径、C++标准等):

  1. 打开命令面板(Ctrl+Shift+P)
  2. 运行"C/C++: Edit Configurations (UI)"命令
  3. 在配置界面中修改设置,VS Code会自动生成c_cpp_properties.json文件

典型的配置文件内容:

代码语言:json
复制
{
  "configurations": [
    {
      "name": "Linux",
      "includePath": ["${workspaceFolder}/**"],
      "defines": [],
      "compilerPath": "/usr/bin/gcc",
      "cStandard": "c11",
      "cppStandard": "c++17",
      "intelliSenseMode": "clang-x64"
    }
  ],
  "version": 4
}

常见问题与解决方法

1. 编译器未找到

问题:提示"g++: command not found"

解决:确保已安装build-essential包:

代码语言:bash
复制
sudo apt-get install build-essential

2. 调试器无法启动

问题:调试时提示"miDebuggerPath"配置错误

解决:检查gdb是否安装:

代码语言:bash
复制
sudo apt-get install gdb
whereis gdb  # 确认路径

更新launch.json中的miDebuggerPath为正确路径。

3. IntelliSense不工作

问题:代码提示和自动补全功能失效

解决

  1. 确保C/C++扩展已正确安装在WSL中
  2. 检查c_cpp_properties.json中的编译器路径是否正确
  3. 重启VS Code

总结

通过本文教程,你已经学会了如何在WSL环境中配置VS Code进行C++开发,包括:

  • 设置WSL和Linux开发环境
  • 安装必要的工具和扩展
  • 创建、编译、运行和调试C++程序
  • 配置自定义构建和调试任务

这种开发方式结合了Windows的易用性和Linux的开发环境优势,特别适合需要跨平台开发的C++项目。

后续学习

  • 探索VS Code更多功能:代码片段、Git集成、任务自动化
  • 学习CMake构建系统,管理复杂项目
  • 尝试使用Docker容器化开发环境
  • 深入学习C++语言特性和标准库

祝你在WSL+VS Code的开发之路上越走越远!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境准备
    • 前置要求
    • 设置Linux开发环境
  • 在WSL中启动VS Code
  • 安装C/C++扩展
  • 创建和编写C++代码
  • 探索IntelliSense功能
  • 运行C++程序
    • 理解tasks.json
  • 调试C++程序
    • 自定义调试配置
  • 高级配置:c_cpp_properties.json
  • 常见问题与解决方法
    • 1. 编译器未找到
    • 2. 调试器无法启动
    • 3. IntelliSense不工作
  • 总结
  • 后续学习
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
咽炎咳嗽吃什么药 洗耳朵用什么药水 火箭军是干什么的 十二指肠溃疡是什么症状 冷鲜肉和新鲜肉有什么区别
什么是基数 什么是三界五行 什么可以美白牙齿 甘露醇是什么药 肺气肿有什么症状
bpm什么意思 擤鼻涕带血是什么原因 第一次要注意什么 八仙过海指什么生肖 公诉是什么意思
鹅蛋什么人不能吃 嘴角上火是什么原因 什么是黄油 梦见来月经是什么意思 原子序数是什么
大象灰配什么颜色好看hcv9jop0ns7r.cn 肝部有阴影一般都是什么病hcv8jop2ns4r.cn 湿疹涂什么药gysmod.com 眼睛视力模糊用什么眼药水hcv9jop4ns8r.cn 精字五行属什么hcv7jop6ns8r.cn
1983年属什么生肖hcv9jop0ns5r.cn 马女和什么属相最配hcv9jop3ns2r.cn 杏和什么不能一起吃hcv7jop6ns6r.cn 西安古时候叫什么hcv8jop0ns8r.cn 什么是慢阻肺hcv8jop8ns1r.cn
头晕呕吐是什么原因hcv8jop9ns1r.cn 丙肝抗体阳性是什么意思呢aiwuzhiyu.com 树莓色是什么颜色hcv9jop1ns2r.cn 男人太瘦吃什么可以长胖adwl56.com 孩子晚上睡觉磨牙是什么原因hcv9jop2ns9r.cn
98年出生属什么hcv8jop3ns9r.cn 妈妈过生日送什么礼物好hcv9jop8ns1r.cn 心脏病有什么症状表现hcv9jop7ns0r.cn 牙齿痛吃什么消炎药hcv9jop0ns1r.cn 胸口闷痛什么原因引起的hcv7jop9ns9r.cn
百度