Il' P1'之间的不匹配版本' 20080116'和' P2'版本' 20070207'

时间:2012-01-22 08:42:19

标签: c++ visual-studio

我正在构建使用其他c ++库的MFC应用程序。我正在使用vs 2008并在vs 2008中编译了所有库项目。

它在调试模式下编译良好,但无法在调试Unicode模式,发布,发布Unicode模式下运行。

我在网上发现需要安装VS 2008SP1,但是如何在调试模式下进行编译。

请建议如何克服这个问题。

4 个答案:

答案 0 :(得分:10)

如果使用多个项目编译解决方案,则应使用相同的编译器(版本)编译所有项目,以确保其有效。

我曾经收到过与您相同的错误消息。如果我没记错,因为使用了链接时间代码生成而发生了问题。我的解决方案是重建所有,另一个解决方案可能是禁用链接时间代码生成

答案 1 :(得分:6)

在Microsoft术语中,P1是解析器(前端),P2是代码生成器(后端)。启用链接时间代码生成(LTGC)后,P1的结果存储在文件中,P2稍后在链接时执行。

如果您降级您的编译器,您应该进行完全重建,否则链接步骤将尝试使用不兼容的P1输出,这将触发该错误。

如果升级编译器,Visual Studio会自动进行完全重建,因此不应该发生这种情况(如果它仍然发生,只需执行完全重建)。

答案 2 :(得分:2)

就我而言,我刚刚安装了Microsoft Visual Studio 2008 Service Pack 1(安装程序)来解决问题。 Service Pack可以从以下链接下载:

https://www.microsoft.com/en-us/download/confirmation.aspx?id=10986

SAM

答案 3 :(得分:0)

我使用Visual Studio 2015与其他数字一起解决了这个问题。 问题出在我链接到我的项目的其中一个库是使用VS2015 Update 3构建的。该解决方案对我有用 - 将Visual Studio更新到2015 Update 3.。

相关问题