Зависимость QtWebKit отсутствует в сгенерированном qmake Makefile - PullRequest
4 голосов
/ 10 июля 2011

Я только начал работать с 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 Ответ

8 голосов
/ 10 июля 2011

Вам нужно добавить:

QT += webkit

в файл .pro и перезапустите qmake.

qmake -project не пытается угадать, какие модули вам нужны в вашем коде.

Если у вас более одного модуля, обычный синтаксис выглядит так:

QT += webkit xml network
...