qmake не добавляет виджеты

У меня есть простая программа. моя программа:

 #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 , как я могу это сделать? я не хочу добавлять вручную.

3

Решение

Как я могу это сделать? я не хочу добавлять вручную.

Вы можете сделать следующие вещи:

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.

3

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

если вы являетесь пользователем 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

0

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