【发布时间】:2013-01-03 13:15:41
【问题描述】:
之后我安装了 VS2012 我的 Qt 项目不再编译(我的电脑上有 VS2010 和 VS2012)。留言:LNK1123: failure during conversion to COFF: file invalid or corrupt。之前只用VS2010就好了。
对于 VS2012 环境建议(见SO here):
- 用
Enable Incremental Linking NO编译 - 卸载 .net 4.5
由于我没有将 Qt 与 VS2012 结合使用(所以没有插件),我不能setup the project as mentioned。我也不能卸载 .net 4.5(另一个项目需要)。
有没有机会解决这个问题?我有一些相关的问题
- 是否是针对 VS2012 C++ 编译器进行编译的解决方案? Here it says为此我需要自己编译 Qt 5 - 我想避免这样的麻烦
- 我需要更新 Qt 吗?
- 或者有没有办法像在VS项目中一样简单地设置
Incremental Linking to off?我需要在构建设置中的哪个位置(下面的屏幕截图)进行设置?
Win 7、x86 QtCreator 2.5.2 Qt 4.8.1 VS2012 Ultimate 更新 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 库,应用程序崩溃了。然后我浏览了所有子项目,发现重复的构建配置。有时我有两次相同的条目,有时会丢失。更正它们,应用程序现在运行(仍然没有版本标签)。
查看了CMD的hg评论,好像还可以。
>P:/Tools/TortoiseHg/hg parents --template '{latesttag}+{latesttagdistance}'
'0.8.902+1'
那么为什么这会导致 COFF 错误,以及为什么会出现混乱的配置?。猜猜我太老了,不适合这种废话。
【问题讨论】:
-
connect.microsoft.com 上有几篇关于它的反馈文章。但到目前为止,微软还无法重现它。您可以发布自己的,尽管考虑到不寻常的构建环境,这也会严重转向无复制。环境问题的可能性很高,首先是反恶意软件。或者只是简单地说,一个损坏的 .obj 或 .lib 文件。
-
非常感谢您指点我!
标签: c++ qt visual-studio-2012 qt-creator