Отключение инкрементного связывания при использовании NMAKE

Я пытаюсь собрать Qt используя nmake, Но когда я пытаюсь это сделать, я получаю сообщение об ошибке ниже.

ССЫЛКА: фатальная ошибка LNK1123: ошибка при преобразовании в COFF: файл
недействительный или поврежденный

Насколько я знаю, это связано с версией .NET Framework (я использую .NET 4.5), и я получаю ту же ошибку компоновки при компиляции проектов C ++ в VS2010. Чтобы избавиться от этого, я отключаю добавочные ссылки, как это предлагается в этот сообщение.

Но я не знаю, как это сделать, когда я бегу nmake из командной строки VS Нужно ли упоминать об этом при настройке или я могу передать его как параметр в nmake?

1

Решение

Это флаг компоновщика, поэтому вам нужно будет передать его компоновщику, а не «nmake». То есть в вашем make-файле Windows при сборке из командной строки вам нужно будет найти вызов компоновщика и передать туда аргумент. Псевдокод следует:

Foo:
$ (LD_COMMAND) / ДОПОЛНИТЕЛЬНО: НЕТ

Что вы могли бы, это открыть файл проекта qmake и написать это:

QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO

Затем вы можете вызвать команду qmake и увидеть сгенерированный Makefile. Ищите «/ INCREMENT: NO», и таким же образом вам нужно будет поместить его в ваш Makefile, если вы создадите его другим способом.

В противном случае, это просто сработает, если вы выполните qmake для генерации Makefile, при условии, что вы подбираете соответствующий файл спецификации для вашей цепочки инструментов и среды.

1

Другие решения

В соответствии с mkspecs/win32-msvc2010/qmake.conf Qt 4 и 5 QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO уже там. Так что вы столкнулись с другой проблемой в случае, если вы компилируете Qt в режиме релиза.

0

По вопросам рекламы [email protected]