Не могу скомпилировать какие-либо проекты Qt в командной строке Windows, только в Qt Creator

Я начинаю возиться с Qt, и у меня не было проблем с компиляцией проектов в их IDE. Командная строка была другой историей. Qt Creator — это круто и все такое, но мне нужно автоматизировать свои сборки.

Это не становится намного проще, чем это:

Содержимое untitled.pro:

SOURCES += \
    source.cpp

Содержимое source.cpp:

int main()
{
    return 0;
}

В выводе компиляции он, по-видимому, делает это:

C:\Qt\Qt5.5.1_x64\Tools\QtCreator\bin\jom.exe -f Makefile.Debug

Итак, я открываю CMD.exe и запускаю следующее:

C:\MyProjectDir>C:\Qt\Qt5.5.1_x64\5.5\msvc2013_64\bin\qmake.exe 

Это сделало мои файлы и каталоги отладки, выпуска, .qmake.stash, Makefile, Makefile.Debug и Makefile.Release.

Далее я побежал:

C:\MyProjectDir>C:\Qt\Qt5.5.1_x64\Tools\QtCreator\bin\jom.exe -f Makefile.Debug

И я всегда получаю эту ошибку:

ССЫЛКА: фатальная ошибка LNK1104: невозможно открыть файл 'shell32.lib' jom: C:\MyProjectDir\Makefile.Debug [debug\untitled.exe] Ошибка 1104

Что я делаю неправильно? Я также попробовал nmake, но это тоже не сработало. Я бы предпочел использовать Джом.

Для этого конкретного проекта используется предварительно скомпилированный установщик msvc2013_64-5.5.1.

Изменить: поскольку в комментариях упоминается nmake, вот вывод ошибки для nmake:

ССЫЛКА: фатальная ошибка LNK1181: невозможно открыть входной файл 'shell32.lib' NMAKE: фатальная ошибка U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\link.EXE"': код возврата' 0x49d' Стоп. NMAKE: фатальная ошибка U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\nmake.exe"': код возврата '0x2' Стоп.


person kayleeFrye_onDeck    schedule 27.02.2016    source источник
comment
Просто введите «make» после выполнения qmake, и это сделает работу.   -  person Sudipta Kumar Sahoo    schedule 27.02.2016
comment
Это не так. Я объяснил это внизу своего ответа.   -  person kayleeFrye_onDeck    schedule 27.02.2016
comment
Не проверял, но у меня работает нормально.   -  person Sudipta Kumar Sahoo    schedule 27.02.2016
comment
Я добавил свой вывод ошибки nmake.   -  person kayleeFrye_onDeck    schedule 27.02.2016
comment
Не могли бы вы обновить свой полный файл pro   -  person Sudipta Kumar Sahoo    schedule 27.02.2016
comment
Ничего не изменилось o.0 Это только два файла, и это все их содержимое. Кажется, я неправильно вас понял.   -  person kayleeFrye_onDeck    schedule 27.02.2016
comment
@kayleeFrye_onDeck вы пробовали использовать ярлык командной строки Qt?   -  person Ilya    schedule 27.02.2016
comment
@ Илья Нет. Я сделал именно то, что было сказано в вопросе, ни больше, ни меньше. CMD->Qmake->Jom|nmake Где находится этот ярлык и как он называется?   -  person kayleeFrye_onDeck    schedule 27.02.2016
comment
Он устанавливается вместе с Qt Creator, посмотрите в меню "Пуск" Qt 5.x для рабочего стола...   -  person Ilya    schedule 27.02.2016
comment
Я верю, что у вас будет 3 файла с именами Makefile, Makefile.Debug, makefile.Release... Right   -  person Sudipta Kumar Sahoo    schedule 27.02.2016
comment
@SudiptaKumarSahoo да, как указано в вопросе выше, это сделало мои файлы и каталоги отладки, выпуска, .qmake.stash, Makefile, Makefile.Debug и Makefile.Release. -- Удаление старых файлов и повторный запуск qmake не решили никаких проблем.   -  person kayleeFrye_onDeck    schedule 27.02.2016
comment
@Ilya Итак, используя этот ярлык + следуя его инструкциям вверху, Настройка среды для использования Qt ... Не забудьте вызвать vcvarsall.bat для завершения настройки среды! решил это! ТЫВМ!!!   -  person kayleeFrye_onDeck    schedule 27.02.2016
comment
В качестве примечания в Ubuntu (или в Linux вообще) вам не нужно ничего настраивать, если инструменты Qt установлены из репозиториев пакетов. Все работает и в командной строке из коробки. Этот вопрос — прекрасный пример того, почему я предпочитаю Ubuntu при разработке Qt.   -  person juzzlin    schedule 03.03.2016
comment
У меня не было проблем с Qt Creator для Windows, но, черт возьми, это была головная боль. Однако полезно знать об Ubuntu.   -  person kayleeFrye_onDeck    schedule 04.03.2016


Ответы (1)


Используйте (или имитируйте) командную строку Qt (ярлык Qt 5.x для рабочего стола..."), для нее будет установлен нужный вам PATH.

person Ilya    schedule 27.02.2016
comment
Просто к вашему сведению для тех, кто проверяет это, этот ярлык CMD был здесь для меня, просто обновите имя программы qt для того, что вы ему дали. Мне не нужно имя по умолчанию Qt 5.5.1, так как у меня несколько установок 5.5.1: "%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Qt 5.5.1_x64\5.5\MSVC 2013 (64-bit)" - person kayleeFrye_onDeck; 27.02.2016
comment
Чтобы не возиться с ярлыком, используйте Target, показанный в свойствах ярлыка. Для меня это было: C:\Windows\System32\cmd.exe /A /Q /K C:\Qt\Qt5.5.1_x64\5.5\msvc2013_64\bin\qtenv2.bat и C:\Qt\Qt5.5.1_x64 было то, что я назвал каталогом для моей установки qt - я думаю, что по умолчанию это C:\Qt\Qt5.5.1 - person kayleeFrye_onDeck; 27.02.2016
comment
@kayleeFrye_onDeck до Win8 ярлык было легче обнаружить, я думаю (наряду с Qt Creator в меню «Пуск»). Возможно, это проще (опять же) на Win10, какую версию Windows вы используете? - person Ilya; 27.02.2016
comment
Я использую Windows 10 - person kayleeFrye_onDeck; 29.02.2016
comment
Итак, в Windows 10, когда я проверяю папки Qt, я не получаю ярлык CMD, но появляются такие вещи, как Linguist и Designer — я щелкнул их правой кнопкой мыши и выбрал «Открыть расположение файла», и они имеют то же расположение файлов, что и ярлык cmd. - person kayleeFrye_onDeck; 29.02.2016