Qt:在转换为COFF期间安装VS2012 LNK1123失败后

时间:2013-01-03 13:15:42

标签: c++ qt visual-studio-2012 qt-creator

之后我安装了 VS2012 我的Qt项目不再编译(在我的计算机上安装了VS2010和VS2012)。消息:LNK1123: failure during conversion to COFF: file invalid or corrupt。之前只使用VS2010就好了。

对于VS2012环境,建议(见SO here):

  1. 使用Enable Incremental Linking NO
  2. 进行编译
  3. 卸载.net 4.5
  4. 由于我没有将Qt与VS2012结合使用(所以没有插件),我不能setup the project as mentioned。我也不能卸载.net 4.5(另一个项目需要)。

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

    1. 这是针对VS2012 C ++编译器编译的解决方案吗? Here it says我需要自己编写Qt 5汇编 - 我想避免这样的麻烦
    2. 我是否需要更新Qt?
    3. 或者有没有办法在VS项目中设置Incremental Linking to off?在构建设置(下面的屏幕截图)中我需要设置它吗?
    4. 赢7,x86 QtCreator 2.5.2 Qt 4.8.1 VS2012旗舰版更新1,VS2010仍然安装

      Project compile settings

      - 编辑---

      我进行了交叉检查,路径仍然是VS2010,并且没有包含.net 4.5路径。

      Paths

      - 编辑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现在运行(仍然没有版本标记)。

      Build configs

      检查CMD上的hg评论,似乎没问题。

      >P:/Tools/TortoiseHg/hg parents --template '{latesttag}+{latesttagdistance}'
      '0.8.902+1'
      

      那么为什么会导致COFF错误,为什么会出现混乱的配置?。猜猜我这个废话太老了。

2 个答案:

答案 0 :(得分:3)

所有提示 ba__friend 的提示。原因是错误的cvtres.exehere所述。禁用旧版本,一切都很好(至少在我的特定情况下)。

答案 1 :(得分:1)

我有这个问题,在我的情况下,原因是在已经有Visual Studion 2010的机器上安装Visual Studio 2012.我也无法在Visual Studio中运行C ++项目(相同的错误)。 有三种解决方案:

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