在使用vscode配置c++编译环境时,在跟着教程进行调试的程序的时候
#include#include #include using namespace std; int main() { vector msg{ "Hello", "C++", "World", "from", "VS Code", "and the C++ extension!" }; for (const string& word : msg) { std::cout << word << " "; } std::cout << std::endl; return 0; }
“运行生产任务”后能生成exe文件,生产的exe文件在vscode中运行时直接跳过,在cmd窗口运行时报错
参考文章 得到解决办法,程序正常执行。
猜想可能是有关string的问题。解决方案如下:
1.使用-static 编译[g++ -static file.cpp] (我使用的这种方法,在task.json文件的args中添加“-static”选项)
2.删除掉其他含有libstdc++-6.dll 的PATH环境变量,只留下mingw的
3.将 libstdc++-6.dll 文件与代码放置同一文件编译
4.将 libstdc++-6.dll 文件放到System32或SysWOW64文件夹下。



