qt creator无法调试qt源码的问题。(如果自己写的代码无法调试请移步这里)
qt creator licence 问题:QT License check failed! Giving up…解决方案_qnx license check failed-优快云博客
qt下载地址:
https://download.qt.io/archive/qt
https://download.qt.io/new_archive/qt
https://mirrors.tuna.tsinghua.edu.cn/qt
安装qt建议使用online_installers
正常来讲,在qt安装的时候,可以选择安装source和对应编译器的qt库相关的dll文件(我使用的是msvc2015或msvc2017)。如果发现有组建未安装可以重新进行一次安装过程,双击qt-opensource-windows-x86-5.11.0.exe程序。下图是qt安装程序界面,可知qt-opensource-windows-x86-5.11.0.exe中默认不含有qt库相关的dll对应的dbg文件。需要从其他源下载。没有正确版本的qt库相关的dll对应的dbg文件就无法调试进入qt的源码中!!!
下图是通过运行D:\Qt\Qt5.12.0\MaintenanceTool.exe后,设置源,然后下载对应的dbg文件。
源的网址为:
https://mirrors.tuna.tsinghua.edu.cn/qt/online/qtsdkrepository/windows_x86/desktop/
类似的源网址还有:
https://mirrors.aliyun.com/qt
https://mirrors.sjtug.sjtu.edu.cn/qt/
https://mirrors.ustc.edu.cn/qtproject/
国内源集合_Tony+的博客-优快云博客_国内源
我的qt版本是qt5.12.0,我所添加的源网址为如下:
https://mirrors.tuna.tsinghua.edu.cn/qt/online/qtsdkrepository/windows_x86/desktop/tools_mingw/
https://mirrors.tuna.tsinghua.edu.cn/qt/online/qtsdkrepository/windows_x86/desktop/qt5_5120/
https://mirrors.tuna.tsinghua.edu.cn/qt/online/qtsdkrepository/windows_x86/desktop/tools_qtcreator/
https://mirrors.tuna.tsinghua.edu.cn/qt/online/qtsdkrepository/windows_x86/desktop/qt5_5120_src_doc_examples/
Qt MaintenanceTool更新、添加组件-优快云博客
如果还需要其他的组件或工具比如openssl、qtcreator等等都可以按上面的网址方式组装,当然还可以用aliyun的或163的相关源,源中包含了qt debug相关的,所以可以看到qt debug information files 选项,勾选后就能主动下载对应版本的qt相关dll所对应的dbg文件了。
下载还dbg文件后,可以看到Qt5.11.0\5.11.0\msvc2017_64\bin 中每一个dll都有一个pdb。
默认创建的简单工程,在qtcreater设置好工具->选项->调试器->概要->添加qt源码后,
就能进入源码的调试。
有的版本的qt在qt官网提供了相应的pdb文件,但有的版本需要从其他源下载。比如qt5.11.0在https://download.qt.io/new_archive/qt中可以直接下载到pdb文件。
选择你当前qt对应版本的pdb压缩包,并从中选择你当前developkit 对应的编译器的pdb,复制拷贝到对应的qt安装路径下。成功后会pdb和dll应该是成对出现的 )
如果调试时出现源码位置对不上,原因可能是使用了错误的版本的pdb文件。dll版本号为 5.15.2-0-202011130602 的msvc2015的x64的 而pdb的版本却是5.15.2-0-202011130740,这可能是源本身的问题,也有可能是源混乱导致的。
建议将用户自定义存储库唯一指定为:https://mirrors.tuna.tsinghua.edu.cn/qt/online/qtsdkrepository
将代理改为无代理。
后来发现尝试设置DESTDIR = ../bin1
换一个新的路径后又能调试进去了。对比了下,惊奇发现原来路径中有我之前拷贝的该版本的Qt*d.dll,但是对应的dll没有拷贝Qt*d.pdb。
解决方案,将那些DESTDIR中 dll和pdb删掉,或者将对应的pdb和dll文件同时拷贝过来。publish的时候 再将pdb删除。
qt creator源码地址:https://download.qt.io/archive/qtcreator