2011-07-10 8 views
4

Je viens de commencer à travailler avec Qt (en C++), donc j'ai suivi un exemple de "bonjour, monde" que j'ai trouvé en ligne. J'ai créé le hello.cpp du programme dans le répertoire bonjour:QtWebKit dépendance manquante de qmake généré Makefile

#include <QtGui> 

int main(int argc, char *argv[]) { 
    QApplication app (argc, argv); 
    QLabel label ("Hello, world!"); 
    label.show(); 
    return app.exec(); 
} 

J'ai couru:

qmake -project 
qmake hello.pro 
make 

et tout compilé correctement et je pouvais courir ./hello. Ensuite, être une personne aventureuse, j'ai essayé de modifier le fichier:

#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(); 
} 

Je rediffusé les trois commandes, mais maintenant, quand je lance make je reçois l'erreur suivante:

hello.cpp:2: fatal error: QtWebKit: No such file or directory 
compilation terminated. 
make: *** [hello.o] Error 1 

J'ai vérifié le Makefile et la variable INCPATH a été définie comme

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. 

Il est sensiblement manquant -I/usr/include/Qt4/QtWebKit. La variable LIBS manquait également -lQtWebKit. Les ajouter manuellement entraîne la réussite de la compilation. Qu'est-ce que je fais mal? Que dois-je ajouter pour que qmake génère le Makefile correct?

Répondre

8

Vous devez ajouter:

QT += webkit 

à votre fichier .pro et réexécuter qmake.

qmake -project ne cherche pas à deviner de quels modules vous avez besoin dans votre code.

Si vous avez plus d'un module, la syntaxe habituelle est comme:

QT += webkit xml network 
+0

Merci. Est-ce que "QT + = webkit" est le format standard? Si je voulais aussi ajouter QtXml, devrais-je ajouter "QT + = xml" ou "QT + = webkit, xml"? – Nick

+0

@Nick: mis à jour ma réponse – Mat

Questions connexes