我正在构建使用其他c ++库的MFC应用程序。我正在使用vs 2008并在vs 2008中编译了所有库项目。
它在调试模式下编译良好,但无法在调试Unicode模式,发布,发布Unicode模式下运行。
我在网上发现需要安装VS 2008SP1,但是如何在调试模式下进行编译。
请建议如何克服这个问题。
答案 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.。