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