2011-07-10 73 views
4

我剛剛開始使用Qt(使用C++),所以我遵循我在網上找到的「hello,world」示例。我創建的程序HELLO.CPP目錄您好:QtWebKit依賴項從qmake生成的Makefile中缺少

#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?

回答

8

您需要添加:

QT += webkit 

.pro文件,然後重新運行qmake的。

qmake -project不會嘗試猜測您的代碼中需要什麼模塊。

如果你有一個以上的模塊,通常的語法是這樣的:

QT += webkit xml network 
+0

感謝。 「QT + = webkit」是標準格式嗎?如果我想添加QtXml,我也會把「QT + = xml」,或者「QT + = webkit,xml」? – Nick

+0

@Nick:更新了我的答案 – Mat