如何解决Code::Blocks搭配MSYS2调试时的crt.exe.c找不到错误
问题
- 通过MSYS2安装GNU GCC和GDB,使用命令:
pacman -Syu pacman -S --needed base-devel mingw-w64-x86_64-toolchain - 已添加环境变量
C:\msys64\mingw64\bin,并修改Code::Blocks中的编译器路径 - 程序编译并运行正常,但调试时在
main函数最后一行弹出错误:C:\M\B\mingw-w64\crt\crt.exe.c not found
- 测试过其他MinGW版本(如8.1.0)调试正常,Cygwin调试也能正常启动并完成
解决办法
- 安装CRT调试符号包
MSYS2默认的工具链包不含CRT的调试符号,导致GDB无法定位crt.exe.c的源码映射。打开mingw64终端,执行:
pacman -S mingw-w64-x86_64-crt-debug
安装后重新调试,该错误会消失。
直接忽略错误
这个错误不影响自身代码的调试流程——只是程序退出时GDB尝试追踪CRT收尾代码却找不到源码。弹出提示时选择跳过,即可正常完成调试。配置GDB自动跳过CRT文件
在Code::Blocks的调试设置中,找到GDB初始化命令区域,添加:
set skip-file-regex "crt.*\\.c"
GDB会自动忽略所有CRT相关的.c文件,不会再触发该错误提示。
内容的提问来源于stack exchange,提问作者이예준
相关产品推荐
相关产品推荐

