解决调试报错
前面win11+vscode搭建的c/c++环境,ctrl+shift+B生成正常,cttl+F5运行正常。今天打断点逐步调试时报错,提示找不到库文件。解决方案如下:
- 下载mingw-w64源码库:(两种途径)
- 通过MSYS2 UCRT64终端下载
pacman -S git # 安装git
git clone https://git.code.sf.net/p/mingw-w64/mingw-w64 # 下载mingw-w64
下载好的文件在C:\msys64\home\你的用户名\)目录下。 - 手动下载源码(如果不想安装 Git)
如果不想安装 Git,可以直接从浏览器下载源码:访问 MinGW-w64 的官方源码仓库:
https://sourceforge.net/p/mingw-w64/mingw-w64/
点击 “Download Snapshot” 下载压缩包(如 .zip 或 .tar.gz)
- 通过MSYS2 UCRT64终端下载
- 得到mingw-w64源码包后,在MSYS2安装目录下新建src文件夹,C:\msys64\ucrt64\src,把mingw-w64放到src文件夹中,最终目录C:\msys64\ucrt64\src\mingw-w64
- 修改lauch.json
{
“version”: “0.2.0”,
“configurations”: [
{
“name”: “gcc.exe - Build and debug active file”,
“type”: “cppdbg”,
“request”: “launch”,
“program”: “${fileDirname}\ f i l e B a s e n a m e N o E x t e n s i o n . e x e " , " a r g s " : [ ] , " s t o p A t E n t r y " : f a l s e , " c w d " : " {fileBasenameNoExtension}.exe", "args": [], "stopAtEntry": false, "cwd": " fileBasenameNoExtension.exe","args":[],"stopAtEntry":false,"cwd":"{fileDirname}”,
“environment”: [],
“externalConsole”: true,
“MIMode”: “gdb”,
“miDebuggerPath”: “C:\msys64\ucrt64\bin\gdb.exe”,
“setupCommands”: [
{
“description”: “Enable pretty-printing for gdb”,
“text”: “-enable-pretty-printing”,
“ignoreFailures”: true
},
{
“description”: “Redirect C:/W/B to MSYS2 UCRT64 source path”,
“text”: “set substitute-path C:/W/B C:/msys64/ucrt64”
},
{
“description”: “Skip system libraries if needed”,
“text”: “set sysroot /”,
“ignoreFailures”: true
}
],
“preLaunchTask”: “C/C++: gcc.exe build active file”
}
]
}
因为调试时默认会指向C:/W/B路径查找库文件,所以将该目录重定向到C:/msys64/ucrt64,这样就成功解决了调试时找不到库文件报错的问题。