2015-10-25 93 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