简 述: 前面用了两年 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”,安装即可。其它步骤同方式一。


参考