У меня есть простая программа. моя программа:
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
int rc ;
QApplication app(argc, argv);
QLabel *label = new QLabel("Hello Qt!");
label->show();
rc = app.exec();
return(rc) ;
}
Я хочу скомпилировать и построить этот код в командной строке.
Я установил QT и MINGW.
Первая моя команда:
qmake -project
тогда я даю эту команду.
qmake
Затем qmake создает файл .pro, который:
TEMPLATE = app
TARGET = HELLO
INCLUDEPATH += .
# Input
SOURCES += hello.cpp
я думаю, что этот файл должен включать ‘QT + = widgets’, но это не так. я не знаю почему.
наконец, я звоню Mingw Make
и это дает ошибку.
Когда я добавляю .pro-файл QT + = widgets, затем вызываю mingw-make, он работает и создает .exe-файл.
тогда мой вопрос в том, почему qmake автоматически добавляет QT += widgets
, как я могу это сделать? я не хочу добавлять вручную.
Как я могу это сделать? я не хочу добавлять вручную.
Вы можете сделать следующие вещи:
1) Вы можете использовать QtCreator и выбрать приложение на основе виджетов.
2) qmake -project «QT + = widgets»
но не более того. QMake не является синтаксическим анализатором проекта C ++.
Также обратите внимание, что вы можете использовать greaterThan(QT_MAJOR_VERSION, 4):QT+=widgets
быть совместимым с Qt 4, если это важно для вас, так как виджеты были в модуле gui для Qt 4, а core и gui добавляются по умолчанию. Они были помещены в собственный модуль виджетов в Qt 5.
если вы являетесь пользователем Linux, вы можете сделать небольшой скрипт bash, как это
#!/bin/bash
if [ "$1" == "-project" ]; then
qmake $@ "QT += widgets gui"else
qmake $@
fi
(следуя пункту 2 в lpapp) и поместите его в каталог / usr / bin .. если хотите, вы можете переименовать qmake в нечто вроде qmake_old, переименовать скрипт в «qmake», а затем
#!/bin/bash
if [ "$1" == "-project" ]; then
qmake_old $@ "QT += widgets gui"else
qmake_old $@
fi
так что вы можете обычно вызывать qmake ad, он автоматически делает то, что вы хотите
(NB не забудьте chmod + x)
проверено на Ubuntu 14.04