VSCode能编译cpp,无法正常运行、调试,可能原因及解决方案(VSCode,anaconda,环境变量)

问题描述

蒟蒻VSCode默认在PowerShell中执行编译、运行、调试等指令。

在跑一些cpp程序中,经常会出现明明编译成功,却无法正常运行的情况,偶尔会报错形如

无法定位程序输入点***于动态链接库***

debug也不能正常运行,报错形如

ERROR: Unable to start debugging. Unexpected GDB output from command "-exec-run". During startup program exited with code 0xc0000139.
The program 'XXX.exe' has exited with code 0 (0x00000000).

然而,在cmd里却能正常运行刚刚编译好的exe,非常奇怪

原因

蒟蒻之前配置了VSCode+Anaconda,将conda加入了环境变量,其中有一项是

C:\Users\hujt\anaconda3\Library\mingw-w64\bin

其中含有一些c++的动态链接库,与自己安装的一套mingw64的动态链接库冲突

自己装的mingw64也加入了环境变量,是编译运行C/C++用的,里面有gcc clang等编译器

之前配置的时候,不知道什么时候设置了PowerShell启动时自动加载Anaconda的配置,然后就引发冲突了

并且VSCode里运行Python代码也会加一句conda activate base,也会引发冲突

解决方案

一是参考 https://blog.csdn.net/Flag_ing/article/details/124521354 ,把上面那个环境变量删掉,不过不知道之后跑Python的时候会不会出问题;

二是在环境变量列表中,将上面那个环境变量的次序移到mingw64之后;并且在PowerShell中取消自动激活,见 https://blog.csdn.net/Edisonleeee/article/details/90725318

三是临时手动conda deactivate

但是最近又发现,即使环境变量都没有了,VScode还是会像有conda和mingw64的环境一样,总是会冲突

我决定把anaconda卸载了,换成Python

posted @ 2022-05-25 16:48  Flash_Hu  阅读(3818)  评论(1编辑  收藏  举报