Зависимость QtWebKit отсутствует в сгенерированном qmake Makefile
Я только начал работать с Qt (на C++), поэтому я последовал примеру "Здравствуй, мир", который я нашел в Интернете. Я создал программу hello.cpp в каталоге hello:
#include <QtGui>
int main(int argc, char *argv[]) {
QApplication app (argc, argv);
QLabel label ("Hello, world!");
label.show();
return app.exec();
}
Я побежал:
qmake -project
qmake hello.pro
make
и все правильно скомпилировано и я смог запустить./hello. Затем, будучи предприимчивым человеком, я попытался изменить файл:
#include <QtGui>
#include <QtWebKit>
int main(int argc, char *argv[]) {
QApplication app (argc, argv);
QLabel label ("Hello, world!");
QWebPage page;
label.show();
return app.exec();
}
Я перезапустил три команды, но теперь, когда я запускаю make, я получаю следующую ошибку:
hello.cpp:2: fatal error: QtWebKit: No such file or directory
compilation terminated.
make: *** [hello.o] Error 1
Я проверил Makefile и переменная INCPATH была определена как
INCPATH = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I.
В нем явно отсутствует -I/usr/include/qt4/QtWebKit. В переменной LIBS также отсутствовал -lQtWebKit. Добавление их вручную приводит к успешной компиляции. Что я делаю неправильно? Что мне нужно добавить, чтобы qmake генерировал правильный Makefile?
1 ответ
Вам нужно добавить:
QT += webkit
на ваш .pro
файл и перезапустите qmake.
qmake -project
не пытается угадать, какие модули вам нужны в вашем коде.
Если у вас более одного модуля, обычный синтаксис выглядит так:
QT += webkit xml network