Qt 5.3。 QtWidgets:没有这样的文件或目录#include <qtwidgets> </qtwidgets>

时间:2014-07-10 05:59:28

标签: c++ qt qt5 qmake qtwidgets

我想编译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。

4 个答案:

答案 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

有趣的部分小部件标志添加:

  • 在我的情况下-I / usr / include / qt5 / QtWidgets -I / usr / include / qt5 / QtGui to INCPATH
  • -DQT_WIDGETS_LIB到DEFINES变量。
  • -lQt5Widgets -lQt5Gui to libs。

唯一不同的部分是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)。