安装VS2012后,我的 Qt 项目不再编译(我的计算机上有 VS2010 和 VS2012)。留言:LNK1123: failure during conversion to COFF: file invalid or corrupt
。以前只用VS2010就可以了。
对于 VS2012 环境,建议(请参阅此处):
- 编译
Enable Incremental Linking NO
- 卸载.net 4.5
由于我没有将 Qt 与 VS2012 结合使用(因此没有插件),因此我无法按上述方式设置项目。我也不能卸载 .net 4.5(另一个项目需要)。
有没有机会解决这个问题?我有一些相关的问题
- 它会是针对 VS2012 C++ 编译器进行编译的解决方案吗?这里它说我需要自己编译 Qt 5 - 我想避免这样的麻烦
- 我需要更新 Qt 吗?
- 或者有没有办法
Incremental Linking to off
像在 VS 项目中一样简单地设置?我需要在构建设置中的哪个位置(下面的屏幕截图)进行设置?
Win 7, x86 QtCreator 2.5.2 Qt 4.8.1 VS2012 Ultimate with Update 1, VS2010 仍然安装
- 编辑 - -
我交叉检查了,路径仍然是 VS2010,并且没有包含 .net 4.5 路径。
-- 编辑 2 -- 根据惠普的评论
至少我已经尝试关闭我的防病毒软件。同样的问题。此外,我还检查了一些其他较小的 Qt 项目(我是一个零星的 Qt 编码器,所以我在该领域没有足够的经验)。他们确实编译。此外,我在受影响的 Qt 项目中的所有子项目都会编译,只有最后一部分(GUI,使用所有子项目)因上述错误而失败。
- 更进一步 -
在我的.pro
文件中,我使用以下几行来获取DEFINE
hg 版本,使用它很长时间。
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 库,应用程序崩溃了。然后我浏览了所有子项目,发现重复的构建配置。有时我有两次相同的条目,有时会丢失。更正了它们,应用程序现在运行(仍然没有版本标签)。
检查了 hg 上的评论CMD
,似乎没问题。
>P:/Tools/TortoiseHg/hg parents --template '{latesttag}+{latesttagdistance}'
'0.8.902+1'
那么为什么这会导致 COFF 错误,以及为什么配置混乱?. 猜猜我对这个废话来说太老了。