问题描述
在VSCode中运行C++程序时,出现了报错ERROR: Unable to start debugging. GDB exited unexpectedly.
或者Unexpected GDB output from command “-exec-run“
。
Solution
- 首先检查你的项目根目录有无中文,如果有,请改为英文。(在电脑中新建任何文件夹和文件时,永远保持英文命名是一个很好的习惯。除非有其它必须使用中文命名的限制条件,否则最好使用英文命名)。此时再去运行C++程序,如果还有报错,那说明不是这个问题。但是,如果你有使用中文命名工程文件夹或代码文件的习惯,最好改掉这个习惯,这会帮你解决你未来遇到的很多未知的莫名其妙的bug。
libstdc++-6.dll
的问题。很可能你安装了qt或其它版本的MinGW又或者其它什么东西,总之,你另外安装的这个东西中也有一个libstdc++-6.dll
扩展文件,这个文件和你所使用的c++编译器安装目录下的扩展文件重名(例如我的D:\setup\msys64\mingw64\bin\libstdc++-6.dll
)。这使得VSCode在编译c++工程文件时找到了错误的libstdc++-6.dll
扩展(或者是它找到了多个,不知道用哪一个),出现了ERROR: Unable to start debugging. GDB exited unexpectedly.
报错。
- 将
D:\setup\msys64\mingw64\bin
下的libstdc++-6.dll
复制到工程目录下,再次运行C++代码,如果还出现相同的报错,那说明不是扩展文件的问题,你此时可以去其他地方找solution了。 - 对于每一个工程,将扩展文件复制到工程目录下的做法不太优雅。为了更优雅地编译C++工程,你可以在用户环境变量中将
D:\setup\msys64\mingw64\bin
移至最上方,使得VSCode可以先找到这个目录下的libstdc++-6.dll
扩展,这在某些情况下可以解决问题,有时却不能。 - 将
D:\setup\msys64\mingw64\bin
下的libstdc++-6.dll
复制到C:\Windows\System32
下,就可以优雅地编译C++工程了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)