2015-10-25 133 views
0

我正在嘗試運行hello世界程序,並且教程對我無效。Qt Hello World教程不起作用

我猜測這與qt4 <-> qt5linux <-> windows混淆有關。

我在Ubuntu 14.04,64位。我做了一個sudo apt-get install build-essential和一個sudo apt-get install qt5-default

這是我main.cpp代碼:

#include <QApplication> 
#include <QLabel> 

int main(int argc, char *argv[]) 
{ 
    QApplication app(argc, argv); 
    QLabel *label = new QLabel("Linux is wonderful", 0); 
    app.setMainWidget(label); 
    label->show(); 
    return app.exec(); 
} 

我運行這些命令:

qmake -project 
qmake test.pro (for some reason it's not "main.pro") 
make 

這裏是生成.pro文件:

###################################################################### 
# Automatically generated by qmake (3.0) So. Okt. 25 15:51:35 2015 
###################################################################### 
TEMPLATE = app 
TARGET = test 
INCLUDEPATH += . 
# Input 
SOURCES += mymain.cpp 

然後我得到QApplication: No such file or directory。爲什麼?

+0

.pro文件名通常是目錄的名稱,這就是爲什麼它是test.pro,順便說一句。 – hyde

+0

什麼是'test.pro'?以及爲什麼你使用'-project' – CroCo

+0

######################################## ############################## #由qmake自動生成(3.0)所以。 Okt. 25 15:51:35 2015 ########################################## ############################ TEMPLATE = app TARGET = test INCLUDEPATH + =。 #輸入 SOURCES + = mymain.cpp – user3182532

回答

1

您從.pro文件中缺少必要的模塊。顯然qmake -project不會默認添加(有意義,因爲並非所有的Qt應用程序都是widget應用程序)。因此,檢查和補充一點:

QT += widgets 

這是因爲QT5在一個單獨的模塊部件(Qt4的讓他們在GUI)和QApplication也是其中的一部分,由docs出過。 qmake自動添加的兩個模塊(如果不需要,您必須刪除)核心gui(記錄的here),其他您必須明確添加到.pro。


一些注意事項:您一般只運行qmake -project來創建初始.pro文件。然後你需要手工編輯它,並且不希望它被覆蓋!然後,您從不編輯Makefiles,而是通過在編輯.pro文件後運行qmake來重新生成它們。

+0

嗨海德,你是什麼意思的「添加」?添加哪裏?在.pro文件或生成文件?並在文件中的確切位置? – user3182532

+0

@ user3182532,將其添加到項目源文件中。你沒有顯示你的項目文件 – CroCo

+0

哦:其實這應該不是問題。我已經安裝了「qt5-default」軟件包,所以我沒有辦法使用qt4 .pro文件! – user3182532