使用mingw构建库时如何生成pdb文件?

Posted

技术标签:

【中文标题】使用mingw构建库时如何生成pdb文件?【英文标题】:how to generate pdb files while building library using mingw? 【发布时间】:2013-10-16 15:41:33 【问题描述】:

我正在使用 mingw32 工具从 linux 交叉编译到 windows。我需要生成 pdb 文件以在 Windows 上进行调试。有没有办法做到这一点?

【问题讨论】:

嗯,你在2008问过这个问题吗? 我正在使用 Visual Studio 2008。 @JesseGood 最好每 5 年左右检查一次,看看这件事是否有任何进展。 mingw-w64.org/doku.php/contribute#handling_of_pdb_in_gdb 有一些 PDB 项目的链接,FWIW。 【参考方案1】:

另一个选择是使用 llvm/clang 而不是 mingw 进行交叉编译,因为 llvm 现在可以生成 .pdb 文件。 http://blog.llvm.org/2017/08/llvm-on-windows-now-supports-pdb-debug.html

也就是说,我只是使用 cv2pdb。它不能正确翻译所有内容,但已经足够了。

【讨论】:

【参考方案2】:

这个项目使您能够生成 pdb,它在大多数情况下都可以用于调试:

https://github.com/rainers/cv2pdb

更多细节可以在这篇关于事后调试的帖子中提供帮助

http://blog.morlad.at/blah/mingw_postmortem

【讨论】:

【参考方案3】:

GCC/MinGW 以自己的格式生成调试信息,供 GNU GDB 调试器使用,不支持 Microsoft PDB 格式。所以你可以:

    使用 MSVC 在 Windows 上构建应用程序

    使用 Windows 版本的 GNU GDB

    尝试将调试信息转换为 PDB 并使用 Microsoft 调试器,但没有成熟的解决方案

【讨论】:

还是这样吗?

以上是关于使用mingw构建库时如何生成pdb文件?的主要内容,如果未能解决你的问题,请参考以下文章

发布生成 .pdb 文件,为啥?

为啥生成 pdb 文件会导致静态链接库的大小大幅增加?

Visual Studio 不生成.vshost.exe和.pdb文件的方法

VS“无法查找或打开PDB文件”是怎么回事?如何解决

使用 linux 和 g++ 生成 pdb 文件

截至 2017 年的 clang 5.0 pdb 支持