前言

当我们遇到一些Qt底层问题或者需要学习源码,就需要在IDE中配置环境能够调试Qt源码,本篇文章将告诉你如何在QtCreator和Visual Studio上配置,并从原理上明白为何这样做,当你需要在其他IDE中配置时,知道原理了也会让你懂得举一反三,让我们开始吧 😃

原理

Qt是一个C++的框架,C++是编译型语言,由编译器(Compiler)生成可执行文件,同时根据编译器执行参数生成调试信息,调试源码的条件是我们有:1. 调试信息 2. 源码。

对于gcc/clang/mingw等编译器而言,调试信息是保存在目标文件中的,而对于MSVC编译器,他的调试信息在单独的pdb文件中,因此需要下载pdb文件。源码我们只需要在Qt官网或者镜像网站中下载自己对应版本的Qt源码即可。

源码下载

我的Qt安装路径在这里D:\Qt\Qt5.12.10\5.12.10\Src。如果还没安装QtCreator要勾选Sources选项,最终目录在类似D:\Qt\Qt5.12.10\5.12.10\Src的地方,如果没有勾选,可以继续往下看。
进入https://download.qt.io/online/qtsdkrepository/
在这里插入图片描述
我是windows版本所以选择windows_x86,然后选择desktop,接着根据自己的版本选择不同的目录,我是5.12.10版本,所以搜索qt5_512
在这里插入图片描述
其中src_doc_example里的是源码+文档+例子的下载目录,进入后点击qt.qt5.51210.src/,
在这里插入图片描述
可以看到很多分类的源码,理论上手动下也可以,不过太麻烦了,我们找到安装路径D:\Qt\Qt5.12.10下的MaintenanceTool.exe,打开后点击左下角设置
在这里插入图片描述
添加临时资料档案库,输入我们选择的网址https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt5_51210_src_doc_examples/qt.qt5.51210.src/,可以点击条件测试看看网络连接有没有问题。确定后点下一步一直到这里:
在这里插入图片描述
选择添加或移除组件,你应该能看到这一项
在这里插入图片描述
勾上它然后下一步安装就可以了。最终安装在D:\Qt\Qt5.12.10\5.12.10\Src这里,安装完可以检查一下。qt官网下载会比较慢。可以到镜像网站去找:https://download.qt.io/static/mirrorlist/,
在这里插入图片描述
找到源码路径的方法一样,例如南阳的路径是:https://mirror.nyist.edu.cn/qt/online/qtsdkrepository/windows_x86/desktop/qt5_51210_src_doc_examples/qt.qt5.51210.src/。

调试文件下载

如果使用的是MSVC的编译器,就要下载pdb调试文件,路径:https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt5_51210/qt.qt5.51210.debug_info.win64_msvc2017_64/
我的QtCreator中使用的是msvc2017_64位的编译器,进入这个目录找到在这里插入图片描述
base这部分,这是最基础的调试信息,其他可以根据日后需要下载,记得下载7z后缀的,sha1是用来校验的,
下载后解压找到msvc2017_64这一级的文件夹,拷贝到D:\Qt\Qt5.12.10\5.12.10,在拷贝之前,目录下应该已经有msvc2017_64这个目录,否则就是下载的版本不对了。我们下载的其实是一些pdb文件,主要在msvc2017_64\bin,msvc2017_64\lib中,原有的目录结构和下载的一样,所以可以直接粘贴解压的msvc2017_64文件夹。

配置IDE

QtCreator

工具->选项->调试器->概要,添加源码路径
在这里插入图片描述
我的构建套件如下
在这里插入图片描述这里amd64_x86是指64位系统上生成的32位编译器,其实就是32位的,调试器也是32位的,我使用的是CDB调试器,所以要配置CDB paths,这里因为是32位的所以目录是msvc2017而不是msvc2017_64
在这里插入图片描述

Visual Stdio

解决方案右键属性,添加源码路径
在这里插入图片描述
菜单栏->工具->选项->调试->符号,添加pdb路径。这里因为我VS用的是64位的编译器和调试器,所以目录是mscv2017_64。
在这里插入图片描述
实际操作后发现即使没有配置pdb路径,VS也会自动帮我们加载pdb文件,只要文件在dll相同的路径并且pdb和dll匹配。
通过输出窗口可以看出来,
在这里插入图片描述

至此我们就可以调试Qt源码了。VS:
在这里插入图片描述
QtCreator:
在这里插入图片描述

参考:

  1. https://blog.csdn.net/Alliswell2021/article/details/139065198
  2. https://blog.csdn.net/new_zhou/article/details/135573187
  3. https://blog.csdn.net/ss_0507/article/details/135110041
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐