简 述: 前面用了两年 Linux,现切回来 win10 系统,略不习惯;感觉用 MSVC(VS2017) 和 win10 还有点不够利索,记一下解决方式。

  • MSVC 安装 pdb 符号包,调试 Qt 源码

  • Qt 程序增、删组件、卸载时失败,提示 "At least one valid and enabled repository required for this action to succeed."

[TOC]


本文初发于 “偕臧的小站“,同步转载于此。


问题

​ 环境 win10 21H1 📎 Qt 5.12.11 📎 Visual Studio 2017 ,创建一个空的 CMake + Qt 项目,用 VS 打开,调试进入 Qt 源码失败。


分析

使用 VS2017 调试进 Qt 源码,调试到 qwidget.cpp 的 .show() 的定义;一直进不去,查询之后调试符如下。


解决方式

用 MSVC 成功调试 Qt 失败,可检查如下:

  1. Qt5Guid .dll (Debug 模式下 dll 名称含 d)
  2. 加载了 pdb (确定版本没下错)
  3. 解决方案加载了 src源码
  4. 加载了符号调试包路径

方式一

下载对应的 pdb 压缩包,下载链接 download.qt.io,下载对应版本后解压

对此解决方案,添加 Qt 源码路劲,便于找到 .cpp 文件

添加符号调试包

断点调试, F11 进入 show() 函数定义成功;此时可以看到最底部, *d.dll、.pdb 都被加载正确,得以验证。


解决二

控制面板-Qt项选右键菜单更改时, 若报错提示 At least one valid and enabled repository required for this action to succeed. 解决方案为添加如下自定义:

https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt5_51211/
https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/tools_mingw/
https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt5_51211/

# 51211 表示 5.12.11 版本,可自行实际替换

点击添加组件,勾选 “Qt Debug Information Files”,安装即可。其它步骤同方式一。


姊妹篇

若是 IDE 调试时发现没有 Qt 的符号调试包,教程可参考姊妹篇一;以及学会如何查看 对应模块是否加载


参考


系列

QtExamples

欢迎 star ⭐ 和 fork 🍴 这个系列的 C++ / QT / DTK 学习,附学习由浅入深的目录,这里你可以学到如何亲自编写这类软件的经验,这是一系列完整的教程,并且永久免费!”