VS2015+QT5.9.5调试进QT源码的环境搭建【Debugging QT——Step into QT source code】

VS2015+QT5.9.5编译环境的搭建方法,网上文章一大堆,小编就不赘述了,这里重点讲一下通常在VS下使用开源库(如QT/Opencv等)调试环境的搭建方法。能够在调试软件的时候,调试进入诸如QT等开源库的源码自然更有助于学习开源库的内部机制以及发现软件开发时的深层次bug。因此,还是强烈推荐优先搭建好vs调试环境的。

1.首先安装VS2015,这没什么可说的,注意勾选上VS的开发工具。

2.接下来安装QT5.9.5,我们首先需要去官网下载安装包

http://download.qt.io/official_releases/

接下来打开网页http://download.qt.io/official_releases/qt/5.9/5.9.5/下载如下两个安装包,exe文件是QT的自解压压缩包,而pdb的压缩包则是在VS要调试进QT源码时需要用到的东西(自然也要下载的)。

下载好以后自然是安装了,exe的安装过程,小编也不赘述了,该勾选什么,csdn上文章不少了【这里要重点提一下的是,安装时务必要勾上如下图5.9.2中的Sources源码包,后面通过调试符号信息链接源码要用到这个包】。另外,由于qtcreator的调试环境网上相关文章也不少,而且小编不习惯在qtcreator下调试源码,这里小编也不提了。【另外,要提一下,小编我是勾上了32位和64位两个编译包的,另外小编我安装的是QT5.9.5,这里是网上借的图】


接下来说下关于VS的安装,首先,我们需要在VS下安装一些扩展工具,依次点击vs2015菜单栏上的工具->扩展和更新,将打开如下窗口:

点击左侧联机标签,小编我这里下载了Visual Assist,当然这个与QT无关,但是可以辅助VS编程,还是建议安装,当然,大部分程序员都有安装的吧。

接下来,我们在右上角搜索QT相关的工具,小编安装了如下两个:

接下来可以配置调试环境了,其实只要将PDB文件与debug下生成的lib文件放在一起,VS就可以获取到Debug时所需要的符号信息和跳转地址。

因此,首先我们将PDB压缩包拷贝到合适的位置并解压。小编我选择了放在QT安装目录下。

接下来进入该解压目录,由于小编我使用的仅是vs2015,因此,小编我使用windows自带的模糊搜索【右上角搜索*2017*】,将2017需要的所有pdb调试包搜索出来全选并删除【节约电脑空间】。相同的方法删除2013的pdb调试包。

现在剩下的全是vs2015所需要的pdb包了【含32位和64位版本的所有包】,全选并使用解压软件进行独立文件夹解压,将所有的安装包解压出来并删除。



现在这个文件夹下都是我们需要的pdb包了,但是我们还需要区分一下64位和32位的pdb包。因此,继续使用模糊搜索【*X86_64*】,如下图:


利用全选剪切粘贴,将64位和32位的包分别放在不同的文件夹下【小编我分别剪切到了x86和x64目录下】。

接下来我们就是要将所有文件夹下的pdb文件分别拷贝到对应的QT安装目录下的lib同名文件的对应目录下【注意调试的lib名字末尾是带有d标识的】,如下图中的Qt5Widgetsd.pdb就需要拷贝到如下图Qt5Widgetsd.lib对应的QT安装目录下。当然,一个个手动拷贝,这不是正常人能干的事,小编我用QT结合QSQLITE写了一个小软件来完成这个工作,就是先向数据库注册所有lib文件的目录,然后遍历所有的pdb文件,将其拷贝到相应的lib目录下。



小编我制作的小软件如下图所示:

只需在如上软件的libDir上选中C:\Qt\Qt5.9.5\5.9.5\msvc2015目录,并在pdbDir上选中C:\Qt\x86目录【小编我是依据自己的电脑软件安装情况举例】,点击Import PDB按钮即可完成自动复制操作,以上是对于x86情况,而x64则分别是选取C:\Qt\Qt5.9.5\5.9.5\msvc2015_64目录和C:\Qt\x64目录。[注意,由于QT定制安装和官方发布的pdb包不全等原因,可能导致部分pdb文件匹配不到对应的lib,部分lib也缺失对应的pdb,而使进度条不能跑到百分之百,不用管它,只要拷贝结束即可。]

以上软件下载链接请见小编的CSDN资源链接:https://download.csdn.net/download/tanjiaqi2554/10414280

以上软件的源码请见小编的CSDN资源链接:https://download.csdn.net/download/tanjiaqi2554/10410754

以上软件小编添加了qt对应的依赖项,但是你可能还是运行不了,小编编译的是32位的版本,你可能还需要安装vs2015的运行时库,如下链接可以下载:https://download.csdn.net/download/tanjiaqi2554/10414290

接下来由于已经集中拷贝好了PDB文件在对应安装目录lib下,我们可以继续在VS中设置调试的symbol信息了,在菜单栏上依次点击调试->选项,打开如下窗口,并添加好x86和x64的lib目录【这里其实是添加pdb文件目录,由于x86和x64的pdb文件已经分别集中拷贝到了这两个文件夹下,注意读者们需根据自己的安装目录进行选择】。

接下来在解决方案上右击,选择属性。


并在如下对话框中加入QT源码包的路径【如果在前述安装QT时,有勾选源码包项目的话,应该是会有这个Src文件目录的。】


VS将所有用于调试的符号信息和地址存放在了PDB文件中,而我们只要将对应debug版本下的PDB文件放在其对应的Lib文件同名目录下,并在VS中做好相关目录的设置,就可以进行对其源码的调试了,这对于所有开源库都是一致的,不仅限于QT,如Opencv,您自行编译一份Debug版本后,通过将lib和pdb拷贝到一起,再导入VS,即也可以实现基于Opencv源码包的调试支持。

最后,由于小编在使用exe安装QT时,同时安装了32位和64位的版本,所以简单补充说明一下关于32位和64位编译时环境切换时的一些设置。

切换32位和64位exe开发软件编译环境的位置,见如下图:

除此以外,我们需要在按照前述内容安装了QT扩展工具以后,在菜单栏的QT菜单下,依次选择Qt VS Tools->Qt Options,并添加如下目录:

同时,我们在编译项目前,还要打开Qt VS Tools->Qt ProjectSettings,在Version中选好自己项目对应的编译环境,如下图:

同时在第二页中,我们可以根据项目需要,添加自己需要的模块,如下图:

而这里选模块的操作,实际上是自动帮我们在菜单项目->项目属性的链接器输入项中添加了对应的lib库。


所有一切都设置好后,我们即可在开发自己的项目时,随时编译不同环境下的项目【32位或64位】,并单步调试或中断进入QT源码,如下图所示:



最后顺带提一下软件发布之前的打包操作:

只需要利用QT安装目录下的C:\Qt\Qt5.9.5\5.9.5\msvc2015\bin\windeployqt.exe命令处理生成的项目exe文件,即可自动拷贝对应的针对QT和平台的依赖到exe文件目录。如下图所示:

拷贝之前,小编exe目录中的文件如下:

执行以上内容后,将拷贝以下对于QT的依赖到exe所在目录:

当然,拷贝完这些依赖,你的电脑还有可能运行不了这个软件,因为小编我是用VS2015编写的上述小软件,因此你可能还需要安装VS2015运行时库。

因此,Qt在发布软件时,除了要加入一大堆qt的依赖项,还需要在目标机上安装对应的运行时库,也还挺麻烦的。

你也可以用小编链接里面的这个小软件,检查exe的依赖项。https://download.csdn.net/download/tanjiaqi2554/10414302



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值