我正在尝试运行一个hello world程序,这些教程对我不起作用。
我猜这与qt4 <-> qt5
和linux <-> 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 :(得分:1)
您缺少.pro文件中的必要模块。显然qmake -project
默认情况下没有添加(有意义,因为并非所有Qt应用都是小部件应用程序)。所以检查并添加:
QT += widgets
这是因为Qt5在一个单独的模块中有小部件(Qt4在 gui 中有它们),QApplication
是其中的一部分,如docs所示。 qmake自动添加的两个模块(如果您不想要它们,则必须删除)是 core 和 gui (记录为here),其他你必须明确地添加到.pro。
一些注意事项:您通常只运行一次qmake -project
来创建初始.pro文件。然后你需要手工编辑它,并且不要让它被覆盖!然后,您永远不会手动编辑Makefile,而是在编辑.pro文件后运行qmake
重新生成它们。