You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS Code中MSYS2运行C++触发Segmentation fault:libstdc++-6.dll路径异常

问题:MSYS2编译C++后运行触发Segmentation fault,DLL加载路径异常

按VS Code配置指南安装MSYS2后,使用g++可以成功编译代码,但运行时持续触发Segmentation fault错误。调试日志显示程序加载了D:\Programme\Python\Library\mingw-w64\bin目录下的libstdc++-6.dll,而非MSYS2安装目录中对应的正确版本。

测试代码

#include <iostream>
using namespace std;

int main(){
    cout<<"Hello World";
    return 0;
}

环境细节

  • 系统中存在多个libstdc++-6.dll副本,分布在Arduino、NordVPN等目录
  • 已将C:\msys64\ucrt64\bin设置为用户和系统PATH环境变量的首位,理论上应优先加载MSYS2版本的DLL
  • 删除Python目录下的libstdc++-6.dll可解决问题,但担忧会破坏Python或其他依赖程序的正常运行

临时解决方案

创建launch.json文件可临时解决该问题,配置内容如下:

{
    "version": "0.2.0",
    "configurations": [
      {
        "name": "Run C++",
        "type": "cppdbg",
        "request": "launch",
        "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
        "args": [],
        "stopAtEntry": false,
        "cwd": "${workspaceFolder}",
        "environment": [],
        "externalConsole": true,
        "MIMode": "gdb",
        "setupCommands": [
          {
            "description": "Enable pretty-printing for gdb",
            "text": "-enable-pretty-printing",
            "ignoreFailures": true
          }
        ],
        "preLaunchTask": "C/C++: g++.exe build active file",
        "miDebuggerPath": "C:\\msys64\\ucrt64\\bin\\gdb.exe"
      }
    ]
  }

但不想为每个任务都手动创建该文件。后续重装Windows、VS Code及MSYS2后问题得到解决,但无法确定具体修复原因,建议从launch.json的DLL调用逻辑入手排查,寻找更通用的解决方案。

内容的提问来源于stack exchange,提问作者thinksolid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 15:47:08