visual-c++ - 尝试在 Debug模式下将预编译 header 与VS2010(VC100)一起使用时,如何消除错误C2859?

标签 visual-c++ visual-studio-2010 debugging precompiled-headers

我正在尝试升级旧的解决方案以使用VS2010(VC100)。

我进行了设置,以便stdafx.cpp从stdafx.h创建一个预编译的头文件stdafx.pch。然后,指示所有其他包含stdafx.h的.cpp文件使用预编译头。

这些帖子帮助我实现了以下目标:

  • Visual C++ Precompiled Headers errors
  • Precompiled Headers

  • 现在,当我在 Release模式下构建时,一切都很好。但是,当我尝试在 Debug模式下进行构建时,会收到一堆错误消息:

    Error 1 error C2859: [removed]\debug\vc100.idb is not the idb file that was used when this precompiled header was created, recreate the precompiled header.



    我相信此.idb文件是Visual Studio创建的中间调试文件。

    为什么会出现此错误?换句话说,为什么它在创建预编译头时不使用此.idb文件?

    我不确定您需要什么进一步的信息才能给我答复,所以请问是否需要提供更多信息。

    最佳答案

    多亏了一位同事,我才得到了答案。

    问题在于stdafx.cpp的Debug Information Format(调试信息格式)设置为Program Database(/Zi),而所有其他文件的Debug Information Format设置为Program Database for Edit and Continue(/ZI)。

    将它们全部更改为Program Database for Edit and Continue(/ZI)并进行完全重建可以解决此问题。

    我想升级会以某种方式搞砸了。

    关于visual-c++ - 尝试在 Debug模式下将预编译 header 与VS2010(VC100)一起使用时,如何消除错误C2859?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3155583/

    相关文章:

    c++ - "break when an exception is void"是什么意思?

    c++ - Boost multi_array BOOST_ASSERT 已抛出断点

    visual-studio-2008 - 使用#import的多核构建(/MP)策略

    c++ - 提高正弦/余弦和大型数组的计算速度

    scala - 调试使用 SBT Native Packager 构建的 Docker 应用程序

    php - PHP解析/语法错误;以及如何解决它们

    visual-studio-2010 - 我如何(以及何时)将 TFS 与私有(private) DLL 一起使用,这些 DLL 也可以由 NuGet/NuPack 提供服务?

    c++ - Kinect 和 OpenNI

    c# - 使用 IIS 部署我的 visual studio web 应用程序

    c++ - Keil uVision5 问题