之后我安装了 VS2012 我的Qt项目不再编译(在我的计算机上安装了VS2010和VS2012)。消息:LNK1123: failure during conversion to COFF: file invalid or corrupt
。之前只使用VS2010就好了。
对于VS2012环境,建议(见SO here):
Enable Incremental Linking NO
由于我没有将Qt与VS2012结合使用(所以没有插件),我不能setup the project as mentioned。我也不能卸载.net 4.5(另一个项目需要)。
有没有机会解决这个问题?我有一些相关的问题
Incremental Linking to off
?在构建设置(下面的屏幕截图)中我需要设置它吗?赢7,x86 QtCreator 2.5.2 Qt 4.8.1 VS2012旗舰版更新1,VS2010仍然安装
- 编辑---
我进行了交叉检查,路径仍然是VS2010,并且没有包含.net 4.5路径。
- 编辑2 - 惠普发表评论
至少我试过关闭我的反病毒软件。同样的问题。 此外,我已经检查了一些其他较小的Qt项目(我是一个零星的Qt编码器,所以我没有足够的经验在那个领域)。他们确实编译。此外,受影响的Qt项目中的所有子项目都进行了编译,只有最后一部分(GUI,使用所有子项目)失败并出现上述错误。
- 更进一步 -
在我的.pro
文件中,我使用以下几行来获取DEFINE
with the hg version,并使用了这段时间。
VERSION = $$system(P:/Tools/TortoiseHg/hg parents --template '{latesttag}+{latesttagdistance}')
--- $$system line seems to be the line causing the COFF issue, WHY???
DEFINES += VERSION=\\\"$$VERSION\\\"
解决这个问题,我能够在没有COFF错误的情况下重新编译。但由于一些混合的4.8.0 / 4.8.1库,应用程序崩溃了。然后我浏览了所有子项目,发现了重复的构建配置。有时我有两次相同的条目,有时会丢失。更正了它们,app现在运行(仍然没有版本标记)。
检查CMD
上的hg评论,似乎没问题。
>P:/Tools/TortoiseHg/hg parents --template '{latesttag}+{latesttagdistance}'
'0.8.902+1'
那么为什么会导致COFF错误,为什么会出现混乱的配置?。猜猜我这个废话太老了。
答案 0 :(得分:3)
所有提示 ba__friend 的提示。原因是错误的cvtres.exe
如here所述。禁用旧版本,一切都很好(至少在我的特定情况下)。
答案 1 :(得分:1)
我有这个问题,在我的情况下,原因是在已经有Visual Studion 2010的机器上安装Visual Studio 2012.我也无法在Visual Studio中运行C ++项目(相同的错误)。 有三种解决方案:
有一个很好的编码!