使用NMAKE时禁用增量链接

时间:2014-01-05 11:41:52

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

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

  

LINK:致命错误LNK1123:转换为COFF:文件时失败   

无效或损坏

据我所知,这是由于.NET框架版本(我使用的是.NET 4.5),当我在VS2010中编译c ++项目时,我得到了相同的链接错误。为了摆脱它,我按照this post。

中的建议禁用了增量链接

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

2 个答案:

答案 0 :(得分:1)

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

FOO:     $(LD_COMMAND)/ INCREMENTAL:NO

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

QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO

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

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

答案 1 :(得分:0)

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