在哪里可以找到 Qt 的 dll 的 pdb 文件?

Posted

技术标签:

【中文标题】在哪里可以找到 Qt 的 dll 的 pdb 文件?【英文标题】:Where to find the pdb files for Qt's dll? 【发布时间】:2014-10-31 12:09:08 【问题描述】:

我正在调试一个 Qt 应用程序。我在哪里可以找到 Qt 的调试 dll? 我在 Windows 上使用 vs2010。它说它需要来自 Qt 的许多 .dll 的 pdb 文件。

【问题讨论】:

【参考方案1】:

从 Qt 5.9 开始,与 Windows 发行版对应的 PDB 可作为单独的 .zip 文件从该存档下载: https://download.qt.io/archive/qt/

只需浏览到您的特定发行版,然后根据需要在“uwp”或“桌面”PDB 之间进行选择。

【讨论】:

【参考方案2】:

Qt SDK 不附带用于发布版本的调试符号。您必须使用正确的编译器标志从源代码编译整个内容才能获得所需的 .pdb 文件。

看到这个bug report。

【讨论】:

为什么需要调试Qt 两点:1。我想找到用于调试构建而不是发布的 pdb 文件?似乎至少有一个用于调试构建? 2. 因为我遇到了一个错误,如:***.com/questions/26673955/…,我想看看 addDatabase() 函数发生了什么。 @Nyaruko 你应该看到 dmitry-sazonov 关于在哪里可以找到调试 .pdbs 的评论(%QTDIR%\bin 例如 C:\Qt\5.3\msvc2013\bin) @luliu 用于调试仅在发布中发生的问题,用于调试故障转储文件,用于使用分析和性能分析工具等等。【参考方案3】:

正如在bugreport 中发现的那样,Qt 5.12 的 PDB 文件现在可以通过 在线安装程序(维护工具)安装(名称为 Debug Information Files )。

【讨论】:

工作得很好,虽然你需要检查“调试信息文件”和你想要的发行版,否则,当然,你不会有任何 .pdb 文件(我第一次发生这种情况) .所以看来您需要重新下载所有内容。【参考方案4】:

我在我的 Qt 安装 (qt 5.7) 的 bin 文件夹中找到了这些文件

【讨论】:

【参考方案5】:

PDBs 用于调试,如果您安装 Qt 库,您将无法使用调试器进入库并进入函数的实现,例如...它必须是这样的。 AFAIK,如果你想要PDBs,你需要从源代码编译Qt

【讨论】:

你错了。用于调试构建的 PDB 文件位于 %QTDIR%\bin 文件夹中。插件的 PDB 文件位于每个插件文件夹中。 @DmitrySazonov 例如,如果您没有 *.cpp 源文件,您将如何调试? 您无法在没有源文件的情况下进行调试。但是,如果您有 pdb 文件,用户代码的堆栈跟踪将始终是完整的。我不是在谈论来源。 PDB 文件和 Qt 源代码随所有预编译的 qt 包一起提供。 @DmitrySazonov 谢谢!我不知道!【参考方案6】:

我尝试按照 @LittleWhite 的方法,我从这里找到 qt 在线安装程序下载调试信息(qt 5.14.2 msvc2017,x86)

http://mirror.bit.edu.cn/qtproject/online/qtsdkrepository/windows_x86/desktop/qt5_5142/qt.qt5.5142.debug_info.win32_msvc2017/

实体包可能很大,需要qtbase,对我们大多数人来说已经足够了。

5.14.2-0-202003291224qtbase-Windows-Windows_10-MSVC2017-Windows-Windows_10-X86-debug-symbols.7z

【讨论】:

【参考方案7】:

在线安装程序中没有旧的 QT 版本。我能够从here 下载5.9.12 PDB 文件。要获取其他版本或平台的文件,请更改链接中的 ..5129.. 或从根目录手动导航 online installer repository

【讨论】:

【参考方案8】:

路径很深,很难找到。至于Qt5.15.1,好像是这样的: https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt5_5151/qt.qt5.5151.debug_info.win32_msvc2019/

【讨论】:

以上是关于在哪里可以找到 Qt 的 dll 的 pdb 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何修复“无法找到或打开 PDB 文件”。在 Visual Studio 2017 中

Qt sqlite插件在哪里寻找扩展库

VS2012 每次编译程序都会出现3个无法查找或打开 PDB 文件。

Rational 工具 Purify/Quantify 查找 pdb 文件

在哪里可以找到与 Microsoft DLL(比如 WTTLog.DLL)对应的头文件和 lib 文件?

QT:在哪里可以找到examples.pri文件