使用VSCode调试C/C++(包括WSL和Windows环境)

【参考Microsoft官方文档:https://code.visualstudio.com/docs/cpp/cpp-debughttps://code.visualstudio.com/docs/cpp/config-wsl

1.在VSCode中安装扩展“C/C++”和"Remote - WSL"。如果要使用WSL远程桌面,那么在第2步启动WSL远程桌面后在左边栏->扩展中搜索“C/C++”点击“在WSL: Ubuntu中安装”。

2.点击左下角的蓝色图标。

在上方弹出窗口中选择Remote-WSL: New Window。

如果VSCode处于打开文件夹的状态,则弹出窗口会多一个选项Remote-WSL: Reopen Folder in WSL。

如果VSCode远程打开文件夹会弹出窗口:

可以通过“显示本地”直接选取Windows文件夹。成功打开远程后左下角图标如下:

左边栏扩展会显示三栏:JU - 已安装、WSL: UBUNTU - 已安装、推荐。WSL: UBUNTU - 已安装的扩展图标会增加一个代表远程扩展的贴纸:

3.使用VSCode终端方法:远程连接WSL时,在下方终端中:

如果显示的并非zsh,点击“选择默认Shell”。

未处于远程模式时,下方终端的名称为wsl,同样“选择默认Shell"如下:

WSL可通过在设置"settings.json"中添加行:

"terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\wsl.exe"

这样就可以在终端中运行编译命令和调试命令了。

4.VSCode菜单栏->运行->打开配置,打开launch.json文件,在WSL远程窗口中运行参考:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动 (WSL)",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "/usr/bin/gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": false
                }
            ],
            "preLaunchTask": "shell: g++.exe build active file (WSL)"
        }
    ]
}

在Windows(MSYS)中运行参考:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动 (MSYS)",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "E:/msys64/mingw64/bin/gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": false
                }
            ],
            "preLaunchTask": "shell: g++.exe build active file (MSYS)"
        }
    ]
}

VSCode菜单栏->终端->配置任务【若未配置,则点击终端->运行任务会显示”没有配置的任务。配置任务…“,点击后会显示:

点击第一个“shell: cl.exe build active file"会自动创建使用cl.exe编译器的运行任务如下:

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "shell",
			"label": "shell: cl.exe build active file",
			"command": "cl.exe",
			"args": [
				"/Zi",
				"/EHsc",
				"/Fe:",
				"${fileDirname}\\${fileBasenameNoExtension}.exe",
				"${file}"
			],
			"problemMatcher": [
				"$msCompile"
			],
			"group": "build"
		}
	]
}

cl.exe是Visual Studio使用的C/C++编译器(即MSVC)。若使用该编译器,应将X:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.25.28610\bin\Hostx64\x64添加到环境变量。但如果仅如此配置会报错:“fatal error C1034: iostream: 不包括路径集”,需要另行配置。】

打开tasks.json文件,在WSL远程窗口中参考:

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "shell",
			"label": "shell: g++.exe build active file (WSL)",
			"command": "/usr/bin/g++",
			"args": [
				"-g",
				"${file}",
				"-o",
				"${fileDirname}/${fileBasenameNoExtension}"
			],
			"options": {
				"cwd": "/usr/bin"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			}
		}
	]
}

在Windows(MSYS)中参考:

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "shell",
			"label": "shell: g++.exe build active file (MSYS)",
			"command": "E:\\msys64\\mingw64\\bin\\g++.exe",
			"args": [
				"-g",
				"${file}",
				"-o",
				"${fileDirname}\\${fileBasenameNoExtension}.exe"
			],
			"options": {
				"cwd": "E:\\msys64\\mingw64\\bin"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			}
		}
	]
}

配置好后选择菜单栏->终端->运行任务弹出窗口为:

5.打开要调试的代码文件。如果只想编译,选择菜单栏->运行->以非调试模式运行即可。如果要调试,编译后在行号左侧单击添加断点,菜单栏->运行->启动调试,左边栏->运行会启动一个活动会话:

它会自动编译后运行调试,无需先运行生成二进制文件。接下来就可以在下方使用调试控制台了。具体单步跳过、单步调试、单步跳出的调试功能与Visual Studio、JetBrains CLion等IDE并无异。注意事项:在使用Windows中的gcc、g++等调试时不要同时打开WSL远程窗口,否则在下方终端中会报错:“终端 shell CWD“\usr\bin”不存在”。参考:The terminal shell CWD "\usr\bin" does not exist?

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
对于在VS Code中使用WSLWindows Subsystem for Linux)来开发C++,你需要按照以下步骤进行设置: 1. 安装Visual Studio Code和WSL:首先,确保你已经在Windows上安装了Visual Studio Code和WSL。你可以在官方网站上下载并安装它们。 2. 在WSL中安装C++编译器和调试器:打开WSL终端,运行以下命令来安装C++编译器和调试器: ``` sudo apt-get update sudo apt-get install build-essential gdb ``` 这将安装g++编译器和gdb调试器。 3. 在VS Code中安装插件:打开VS Code,点击左侧的扩展图标(四个方块),搜索并安装"C/C++"扩展。这个扩展将为你提供C++的语法高亮、代码补全和调试功能。 4. 配置VS Code使用WSL:按下`Ctrl + Shift + P`打开命令面板,输入"Remote-WSL: New Window"并选择它。这将打开一个新的VS Code窗口,使用WSL作为默认环境。 5. 创建C++项目:在新的VS Code窗口中,点击左侧的资源管理器图标,选择一个文件夹作为你的C++项目文件夹。然后点击菜单栏的"终端",选择"新建终端"。这将打开一个集成终端,你可以在其中执行命令。 6. 编写和编译代码:在集成终端中,你可以使用任何文本编辑器编写C++代码。保存文件时,确保将文件保存为`.cpp`扩展名。使用以下命令来编译你的代码: ``` g++ filename.cpp -o output ``` 这将生成一个可执行文件。 7. 调试代码:在VS Code中,你可以使用"C/C++"扩展提供的调试功能来调试你的C++代码。点击左侧的调试图标,然后点击顶部的绿色箭头来启动调试器。你可以在调试器中设置断点、单步执行代码等。 这些是基本的设置步骤,希望对你有帮助!如果你有其他问题,请随时提问。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ayka

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值