【问题标题】:Visual Studio 2008: .pdb files not created by "Build Solution"Visual Studio 2008:.pdb 文件不是由“构建解决方案”创建的
【发布时间】:2011-06-07 11:24:06
【问题描述】:

我有一个包含许多 C++ 项目的 Visual Studio 2008 解决方案。当我选择 Debug 配置并单独构建每个项目时,我会在 Debug 目录中找到每个项目的 .pdb 文件。但是当我构建整个解决方案时,我没有。输出文件显示在 Debug 目录中,但缺少 .pdb 文件。

有什么想法吗?

【问题讨论】:

  • 那么您能否在将详细程度设置为诊断后发布构建输出?

标签: visual-studio visual-studio-2008 debugging


【解决方案1】:

查看项目属性>编译 - 按高级编译选项,然后新窗口将打开,找到生成调试信息,您可以选择无、pdb - 仅或完整 - 如果没有,那么这就是你不这样做的原因有pdb

【讨论】:

  • 就是这样。谢谢!
【解决方案2】:

构建整个解决方案确实构建了单个项目(如果可能,并行构建)。正在构建的项目配置在Configuration Manager Dialog Box 中指定。这还指定了项目是否已构建,或者是否将从该解决方案配置中的构建中排除。

因此,如果您的 PDB 未显示,请仔细检查您的项目是否正在构建(您似乎这么说,但为了确定,删除所有中间和输出文件夹,然后重新构建解决方案) .还要检查为每个解决方案配置分配了哪些项目配置。也许您的Debug 解决方案配置实际上引用了一些Release 项目配置(或Debug_but_no_pdb)。

如果这仍然没有帮助,请为构建过程启用详细输出:

工具 > 选项 > 项目和解决方案 > 构建和运行 > MSBuild 项目构建输出详细程度:诊断

此外,请仔细检查所有项目依赖项是否存在无效引用。

【讨论】:

    【解决方案3】:

    嗯,关于你的项目,你没有在这里告诉我们很多。但是,此参考可能会提供一些提示:

    http://msdn.microsoft.com/en-us/library/ms241903.aspx

    基于此,我注意到由于 pdb 用于增量链接,因此编译器可能觉得它不需要它们,因为它正在将最终链接作为构建的一部分进行。

    此外,由于 EXE 路径是查找 PDB 的位置之一。 . .他们有可能在那个目录中吗?

    【讨论】:

    • 据我了解,关于如何构建项目的所有配置都存储在 .cs_proj 文件中。当您构建解决方案时,msbuild 只是根据每个项目的 .cs_proj 文件中指定的规则构建每个项目。而且由于 .cs_proj 文件指定构建 .pdb 文件并将其放置在与 .exe 相同的目录中,所以我不知道为什么在构建解决方案时没有发生这种情况,而不是每个项目单独.
    • @Jeff:您的问题涉及 C++ 项目,但此评论涉及 C# 项目。您确定您正在处理正确的构建配置吗?
    • 对不起。我们做了很多 C# 和很多 C++,我把扩展搞糊涂了。这些是 .vcproj 文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    相关资源
    最近更新 更多