6

安装VS2012,我的 Qt 项目不再编译(我的计算机上有 VS2010 和 VS2012)。留言:LNK1123: failure during conversion to COFF: file invalid or corrupt。以前只用VS2010就可以了。

对于 VS2012 环境,建议(请参阅此处):

  1. 编译Enable Incremental Linking NO
  2. 卸载.net 4.5

由于我没有将 Qt 与 VS2012 结合使用(因此没有插件),因此我无法按上述方式设置项目。我也不能卸载 .net 4.5(另一个项目需要)。

有没有机会解决这个问题?我有一些相关的问题

  1. 它会是针对 VS2012 C++ 编译器进行编译的解决方案吗?这里它说我需要自己编译 Qt 5 - 我想避免这样的麻烦
  2. 我需要更新 Qt 吗?
  3. 或者有没有办法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 错误,以及为什么配置混乱?. 猜猜我对这个废话来说太老了。

4

2 回答 2

3

所有归功于ba__friend的提示。原因是这里cvtres.exe描述的错误。禁用旧的并且一切都很好(至少在我的特定情况下)。

于 2013-01-13T09:21:34.003 回答
1

我遇到了这个问题,就我而言,原因是在已经安装了 Visual Studion 2010 的机器上安装了 Visual Studio 2012。我也无法在两个 Visual Studio 中运行 C++ 项目(同样的错误)。有三种解决方案:

  1. 临时解决方案:使用Release mod而不是Debug,应用程序运行,但没有调试可用。
  2. 下载并安装 Qt MinGW 而不是 VS 版本(两倍大小)
  3. (推荐)安装/重新安装 Visual Studio 2010 的 SP1。

有一个很好的编码!

于 2013-02-28T09:44:54.853 回答