"P1"版本"20080116"与"P2"版本"20070207"之间不匹配

Chr*_*_vr 10 c++ visual-studio

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

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

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

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

Wer*_*nze 10

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

我曾经收到过和你一样的错误信息.如果我没记错的话,因为使用了链接时间代码生成.我的解决方案是重建所有,另一个解决方案可能是禁用链接时间代码生成.


rus*_*tyx 6

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

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

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