Windows7 下 Qt-64bit开发环境搭建遇到的坑
前段时间简单地玩过Qt,当时听说MinGW的安装版本比较简单,就下载了一个装上就直接用了,也没什么配置,挺方便的。
但是网上MinGW的安装包都是32bit的,如果想要开发64bit程序就头大了。因为之前用VS比较多,所以就考虑搭一个基于MSVC编译器的的Qt-64bit开发环境。
1、下载安装Qt QtCreator
在https://download.qt.io/下载安装包,由于我安装了VS2013 所以选择了如下的版本:
安装成功之后,需要为Qt Creator配置编译器和调试器。
2、配置编译器和调试器
编译器,只要机器上有VS,基本上都装了VC++的编译器(没有的话,修改或重装,记得勾选 VC++就可以了)。
调试器,如果win7装了WidnowsSDK8.1的话,那说明你已经安装了可用的调试器了,在下图中的cdb.exe就是了。
没有的话那就得安装WindowsSDK了,如果嫌它大,也可以只安装个调试器比如dbg_amd64.msi就可以了。
材料准备好了,还得下锅才能成菜,接下来将他们配置到Qt Creator。
2.1 配置编译器
我的电脑已经安装VS2013,QT Creater 自动检测并配置了编译器VC++ compiler 12.0(amd64) (可以在工具>>选项>>构建和运行>>构建套件选项卡查看)。如果没有自动检测到,通过工具>>选项>>构建和运行>>编译器 选项卡,手动配置即可。
2.2 配置调试器
如果安装调试器后,在工具>>选项>>构建和运行>>Debuggers选项卡中没有发现调试器,那就手动添加:Add>>path: 浏览,将cdb.exe所在路径添加就可以了,OK。
3、遇到的坑
配置完成,怀着激动的心情新建了一个工程,无脑下一步。然后debug。。。就出现了bug,程序并不能进行调试。
看这个调试日志,我首先注意到了ERROR后边的4、5行信息,然后针对它们展开长时间侦查(百度)。后来发现debug执行不下去跟它们没有半毛钱关系哎。(后记:现在它们依然在,但是不影响调试,我也不想管它们了)
那么影响调试的问题出在那呢?
后来才发现我下载的这个安装包里 Qt是64位的,但是Qt Creator 是32位的!会不会跟它有关呢
我只好没脾气地重新下载了一个64位的Qt Creator, 又是一通配置,居然可以debug了。可是好景不长,电脑重启之后,老问题又冒出来了,看来跟Qt Creator的版本没有关系。
到底是什么问题呢?求助中
PS:我遇到的这个问题大家可能不一定遇到,我用另一台电脑(同样的Win7 64bit)使用32bit的Qt Creator就没有出现这个问题。具体什么原因呢。。。
虽然这是个坑,但是这两天,我对Qt的编程环境更加了解了,还在无头绪的百度中学习了Depends工具(用来反编译VC程序的工具,可以查看PE模块的导入模块以及导入和导出的函数,以及动态剖析PE模块的依赖性和解析C++的函数名称),收获不少。