【Tools】 VSCode Debug 报 g++.exe No such file or directory fatal error no .. 的解决方案

726 阅读2分钟

本文已参与「新人创作礼」活动, 一起开启掘金创作之路。

【Tools】 VSCode Debug 报 g++.exe No such file or directory fatal error no input files.. 的解决方案

昨天根据文章 VSCode Cpp 断点调试环境 搭建了一个快速调试C++程序的开发环境,中午还能跑的,也不知道一下午经历了一些什么,等到了傍晚时分,就开始报错了。按照我发布的文章搭建的环境,按 F5 试图断点调试时,报错如下:

在这里插入图片描述 弹窗表示预启动任务 g++ 退出了并且返回错误代码 1,但这个并不能提供什么有效的调试信息,也不能指望靠这个信息解决问题,但是,注意看下方, VSCode 集成的 TERMINAL 里的报错 g++.exe: error: e:ProjectsVSCodeCppTest5srctest.cpp: No such file or directory 这里的 e:ProjectsVSCodeCppTest5srctest.cpp 其实应该是 e:\Projects\VSCode\Cpp\Test5\src\test.cpp。 但是却被解析为没有斜杠的地址,所以才会导致编译器找不到该文件。

原来,造成这个错误解析的原因在于。不同的终端对斜杠和反斜杠的解析规则不同。而我昨天在配好环境之后,又偶然发现 VS Code 自己集成了终端,而且还集成了环境中所有的终端,包括 PowerShellCommand Prompt(cmd),和 Git Bash。 当使用快捷键 ctrl + shift + ~ 打开终端时,点击右侧的下拉箭头可以选择默认打开的 终端。

在这里插入图片描述

点击 Select Default Shell 之后,在界面上方就会弹出环境中的所有 Shell 以供选择。 在这里插入图片描述

选择了 Git Bash 然后 F5 调试 Cpp 代码的话,就会报开篇的错误。当选择了 PowerShell 或者 Command Prompt 之后,就可以正常调试啦!

注意,报错时点击下拉菜单是无法选择默认 shell 的,需要用快捷键自己打开一个终端。