之前我用codeblocks一直都不能debug,我尝试了更换各自gdb的类型,参考了许多的文档,例如:
有些下载的codeblocks没有自带MinGW,没法编译,当你自己下载一个MinGW,你安装好了,可能不会带有gdb.exe文件。
需要把下载好的gdb.exe复制到你的安装MinGW的文件夹的bin里面,就可以进行调试了
https://blog.csdn.net/uestc_c2_403/article/details/78914222
在bin里面缺少gdb.exe。百度的解决方法是,自己在网上下载,并复制过去,结果是我还是失败。
我终于找到了最简单也好用的方法。我把codeblocks删除。在官网上重新安装(http://www.codeblocks.org/downloads/26)
最后在 Settings - Debug - Default - Executable path 中导入之前安装的CodeBlocks\MinGW\bin\gdb32.exe,大功告成
思路大概是:没有gdb.exe文件->重新安装/下载gdb->设置gdb。
然而没有什么用。
后来我甚至尝试了把好使的C-Free5的gdb拿给codeblocks用,还是不行。
这个问题于是一直留存着。我期间一直使用vs进行编程,不得不承认vs除了很大以外,它的调试功能确实非常强悍。
后来在一节程序设计课上,老师推荐我们使用codeblocks+msys2进行编程。
跟随老师安装完了msys2之后。我尝试了一下codeblocks的编译和调试,竟然成功了。
所以我和大家分享一下我安装msys2的过程。
步骤1
下载msys2
我选择的是i686,32位和64位的都可以。第一个好像只有64位能用
步骤2
修改更新源
进入msys64/etc/pacman.d/目录中,分别在三个文件中添加
mirrorlist.mingw32
Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686
Server = http://mirror.bit.edu.cn/msys2/mingw/i686
Server = http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/m/ms/msys2/mingw/i686
Server = http://downloads.sourceforge.net/project/msys2/mingw/i686
mirrorlist.mingw64
Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64
Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64
Server = http://mirror.bit.edu.cn/msys2/mingw/x86_64
Server = http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/m/ms/msys2/mingw/x86_64
Server = http://downloads.sourceforge.net/project/msys2/mingw/x86_64
mirrorlist.msys
Server = http://mirrors.ustc.edu.cn/msys2/msys/
a
r
c
h
S
e
r
v
e
r
=
h
t
t
p
:
/
/
m
i
r
r
o
r
s
.
u
s
t
c
.
e
d
u
.
c
n
/
m
s
y
s
2
/
m
s
y
s
/
arch Server = http://mirrors.ustc.edu.cn/msys2/msys/
archServer=http://mirrors.ustc.edu.cn/msys2/msys/arch
Server = http://mirror.bit.edu.cn/msys2/msys/
a
r
c
h
S
e
r
v
e
r
=
h
t
t
p
:
/
/
w
w
w
.
m
i
r
r
o
r
s
e
r
v
i
c
e
.
o
r
g
/
s
i
t
e
s
/
d
o
w
n
l
o
a
d
.
s
o
u
r
c
e
f
o
r
g
e
.
n
e
t
/
p
u
b
/
s
o
u
r
c
e
f
o
r
g
e
/
m
/
m
s
/
m
s
y
s
2
/
m
s
y
s
/
arch Server = http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/m/ms/msys2/msys/
archServer=http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/m/ms/msys2/msys/arch
Server = http://downloads.sourceforge.net/project/msys2/msys/$arch
其实就是把源更新到清华,北理的国内源
步骤3
打开msys2,输入 pacman -Syu
此处的 pacman 和-Syu直接有一个space,大家注意打上,不然会报错
等待更新所有
等待它更新完成
注意:他最后更新完了会跳出这一行
我在执行完后遇到了警告
解决方法就是关掉不理。。。
因为执行更新会把,之前修改的三个文件覆盖了。你可以先备份修改之后的,然后再恢复!
步骤4
重复步骤2,再次更新源
然后执行命令pacman -Su
将本地的包数据库与远程的仓库进行了同步
步骤5
执行命令 pacman -S mingw-w64-i686-toolchain
步骤6
执行命令 pacman -S mingw-w64-i686-gtk2
步骤7
将msys2(你的msys2安装目录一般在C:\msys64)/mingw64/bin/
添加到PATH目录
这一步很重要,否则eclipse c++中调试会出错
步骤8
在codeblocks->settings->compiler/debugger中进行对应的设置
你在设置好了之后,点开一个"…",它的路径应该都是在msys的路径下的。
再提醒一句:有的同学在最后过程中可能遇到点一下auto-detect之后又选回到原来的路径了,所以这里点击"…"之后不要再选auto-detect就好了。
最后codeblocks的编译和调试功能都应该是正常的