如何使用正确分发的发布 pdb 文件构建 Qt5

HowTo build Qt5 with correctly distributed release pdb files

我想在 debugrelease 模式下从带有 PDB 文件的源构建 Qt5,但我遇到了两个问题:

  1. 未生成发布 PDB 文件(here 是解决方案),

  2. qt 构建系统没有像 nmake.exe install.

    之后的调试版本那样将发布 PDB 文件部署到给定的 prefix 构建文件夹

示例如下:

> configure -confirm-license -debug-and-release -opensource -shared -platform win32-msvc2008 -prefix x86 -mp -no-opengl -nomake examples
> nmake.exe
> nmake.exe install

构建完成后,我有 qtbase\bin\x86\x86\bin 文件夹,其中包含 DLLs、LIBs 和仅 debug PDB 文件,release PDB 文件除外。 Qt 构建脚本不会像对调试 PDB 文件那样制作发布 PDB 文件的副本。释放创建的 PDB 文件,并位于那里的模块中。

有人知道如何解决这个问题吗?

PS:作为我自己的解决方案,我想从每个模块文件夹中复制所有 *.pdb 文件,但我认为这种情况是最糟糕的,首先我会尝试找到更多 人类解.

PSS:Qt4没有这样的行为,我们没有问题。

P3S:这里是 Qt similar bug

谢谢, 此致!


环境:

Version: Qt 5.4.1

System: Win 8.1

Toolset: MSVS2008 (vc9)


有用的链接:

  1. qmake Variable Reference
  2. How to create .pdb files also for Release version of Qt library
  3. SO

-force-debug-info 该死的选项解决了...

Qt.io - release with pdb

追加(不在文件开头插入):

QMAKE_CFLAGS_RELEASE    = -O2 -MD -zi
QMAKE_LFLAGS_RELEASE    = /INCREMENTAL:NO /DEBUG

进入qmake.conf,然后你会得到release pdbs