【问题标题】:Disabling Incremental Linking when using NMAKE使用 NMAKE 时禁用增量链接
【发布时间】:2014-01-05 11:41:51
【问题描述】:

我正在尝试使用 nmake 构建 Qt。但是当我尝试这个时,我得到了下面的链接错误。

LINK:致命错误 LNK1123:转换为 COFF 时失败:文件 无效或损坏

据我所知,这是由于 .NET 框架版本(我使用的是 .NET 4.5)造成的,并且当我在 VS2010 中编译 c++ 项目时出现相同的链接错误。为了摆脱它,我按照this 帖子中的建议禁用增量链接。

但是当我从 VS 命令行运行 nmake 时,我不知道该怎么做。我在配置时是否必须提及它,或者我可以将它作为参数传递给 nmake 吗?

【问题讨论】:

  • 擎天柱,你怎么还没选答案?还有什么需要解决的?
  • 我真的很抱歉@LaszloPapp,我有点忙于其他项目。我是使用 nmake 和 qmake 的新手。所以我不明白你直接提到了什么。我会尽快调查。
  • 擎天柱,你解决了吗?
  • 是的。我安装了 .NET 4.0,现在它可以工作了……很抱歉,我无法按照您的步骤操作。

标签: c++ qt linker nmake incremental-linking


【解决方案1】:

这是一个链接器标志,因此您需要将其传递给您的链接器,而不是“nmake”。也就是说,在从命令行构建时,在您的 Windows 生成文件中,您需要找到链接器调用并在其中传递参数。伪代码如下:

富: $(LD_COMMAND) /增量:否

你可以打开一个 qmake 项目文件并写下这个:

QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO

然后,您可以调用 qmake 命令,并查看生成的 Makefile。然后查找“/INCREMENT:NO”,同样,如果您以不同的方式创建它,则需要将其放入您的 Makefile 中。

否则,如果您为 Makefile 生成 qmake,只要您为您的工具链和环境选择适当的规范文件,它就可以工作。

【讨论】:

    【解决方案2】:

    根据 Qt 4 和 5 的 mkspecs/win32-msvc2010/qmake.confQMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO 已经存在。因此,如果您在发布模式下编译 Qt,您将面临一些其他问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-22
      • 1970-01-01
      • 2015-11-22
      • 2015-12-07
      • 2019-04-23
      • 1970-01-01
      • 1970-01-01
      • 2010-10-09
      相关资源
      最近更新 更多