我想编译Qt示例。我收到错误QtWidgets:没有这样的文件或目录#include
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets - does not help
QT += widgets - does not help
INCLUDEPATH += /opt/Qt/5.3/Src/qtbase/include/ - does not help
Qt 5.3。 Ubuntu 14.04 x64。
答案 0 :(得分:7)
您需要仔细检查是否已完成所有这些步骤:
已安装模块
greaterThan(QT_MAJOR_VERSION,4):QT + =小部件
您重新运行Qt 5 qmake。
话虽如此,我想提醒您,包括整个模块并不是一个好主意,因为它包含了所有与小部件相关的内容。尝试将其缩小到您真正需要的标题。
答案 1 :(得分:7)
你注意到Qt目录结构在Qt4和Qt5之间发生了变化。 QWidget标头移动到QtWidgets目录。尝试添加
INCLUDEPATH += /opt/Qt/5.3/Src/qtbase/include/QtWidgets
如果这样做无效,请尝试使用
手动查找标题find /opt/Qt/5.3/Src/qtbase/ -name QWidget
以及它在INCLUDEPATH中的目录
根据最终比赛的评论进行编辑。
我同意解决方法通常是一个坏主意。要测试安装QT在哪里查找qt5标头和库。创建一个最小的项目。
#include <QApplication>
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget w;
w.show();
app.exec();
}
生成项目并添加QT + = widget
/opt/Qt/5.3/Src/qtbase/bin/qmake -project
项目文件
######################################################################
# Automatically generated by qmake (3.0) Thu Jul 10 13:05:17 2014
######################################################################
TEMPLATE = app
TARGET = so_qtwidgets
INCLUDEPATH += .
QT += widgets
# Input
SOURCES += main.cpp
生成一个make文件
/opt/Qt/5.3/Src/qtbase/bin/qmake
有趣的部分小部件标志添加:
唯一不同的部分是QtWidgets和QtGui的路径。如果这些错了,我会尝试重新安装Qt。
答案 2 :(得分:1)
在运行“ make”之前,请检查.pro文件的外观。我发现命令“ qmake -project”会自动生成一个导致此错误的.pro文件。现在,我通过以下命令编译了我的qt项目,错误消失了:
qmake my_project.pro
make
答案 3 :(得分:0)
这看起来非常像错误的回合方式,我确实在5.6中暂时遇到了同样的问题,但答案可能更简单。
如果您正在加载大量示例,您可能会先到达编辑或最后的任何内容。如果第一次加载示例,则需要在项目侧标签下进行“配置”,这样可以显示“配置”而不是“构建”和“构建”。跑'。它并不总是直接跳过有一个缺陷,但是接下来是默认情况下没有支持的示例(Desktop OpenGL和iOS for two)。
在完成之前,它不会解决直接项目之外的任何依赖项,因为所使用的库取决于使用的编译器/目标(例如,MSVS,GNUCC,MinGW,32 / 64bit)。