Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt 5.3。QtWidgets:没有这样的文件或目录#include<;QtWidgets>;_C++_Qt_Qt5_Qmake_Qtwidgets - Fatal编程技术网

C++ Qt 5.3。QtWidgets:没有这样的文件或目录#include<;QtWidgets>;

C++ Qt 5.3。QtWidgets:没有这样的文件或目录#include<;QtWidgets>;,c++,qt,qt5,qmake,qtwidgets,C++,Qt,Qt5,Qmake,Qtwidgets,我想编译Qt示例。我得到一个错误:没有这样的文件或目录#包含 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。您需

我想编译Qt示例。我得到一个错误:没有这样的文件或目录#包含

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。

您需要再次检查是否完成了所有这些步骤:

  • 已安装的模块

  • greaterThan(QT\u主要版本,4):QT+=widgets

  • 重新运行qt5 qmake


话虽如此,我想提醒您,包含整个模块并不是一个好主意,因为它包含所有与小部件相关的内容。尝试将其缩小到您真正需要的标题。

因为您注意到Qt4和Qt5之间的Qt目录结构发生了变化。QWidget标头已移动到QtWidgets目录。尝试添加

INCLUDEPATH += /opt/Qt/5.3/Src/qtbase/include/QtWidgets
如果这没有帮助,请尝试使用手动查找标题

find /opt/Qt/5.3/Src/qtbase/ -name QWidget
以及它在INCLUDEPATH中的目录

根据决赛的评论进行编辑

我同意变通办法通常是个坏主意。测试您的安装在哪里查找qt5头和库。创建一个最小的项目

#include <QApplication>
#include <QtWidgets>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QWidget w;
    w.show();
    app.exec();
}
项目文件

######################################################################
# 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/qtwidts-I/usr/include/qt5/QtGui到INCPATH
  • -DQT_WIDGETS_LIB定义变量
  • -lQt5Widgets-lQt5Gui到libs

唯一不同的部分是QtWidgets和QtGui的路径。如果这些都是错误的,我会尝试重新安装Qt。

这一切看起来都是错误的,我确实在5.6中暂时遇到了同样的问题,但答案可能会简单得多

如果你正在加载大量的示例,你可能会首先到达编辑器或其他任何地方。如果示例是第一次加载的,则需要在“项目”侧选项卡下进行“配置”,该选项卡应显示“配置”,而不是“构建和运行”。它并不总是直接跳转,这是一个缺陷,但包含默认不支持的示例(桌面OpenGL和iOS两种)也是一个缺陷


在这之前,它不会解决即时项目之外的任何依赖关系,因为所使用的库取决于所使用的编译器/目标(例如MSVS、GNUCC、MinGW、32/64位)。

在运行“make”之前检查.pro文件的外观。我发现命令“qmake-project”自动生成了一个.pro文件,导致了同样的错误。现在,我通过以下命令编译了qt项目,错误消失了:

qmake my_project.pro
make

缩小范围是可行的。但我想学习如何编译必须编译的应用程序。-安装了模块,然后-重新运行Qt5QMake。我如何检查它?@Ufx:run/opt/Qt/5.3/Src/qtbase/bin/qmake。。。或者只需单击QtCreator中相应的上下文菜单选项。仍有检查“模块已安装”的选项。我如何检查它?目录存在。很难解释,因为你缺乏基础知识。不,您不应该检查/opt/Qt/5.3/Src/qtbase/include本身,但它是否在那里有QtWidgets目录……这有助于解决该错误。但现在出现了一个新错误:qtwidts/QtWidgetsDepends:没有这样的文件或目录#include。我想我明白我需要做什么了。但为什么编辑时需要官方示例?是否有办法在环境设置中包含所有qt目录?是否确定已安装的qt库的/opt/qt/5.3/Src/qtbase点?我不希望Src走上这条道路。在fedora 20上,路径是/usr/include/qt5/qtwidts/。我不知道为什么Qt的文档中会有bug。我就是这样解决的。显式指定包含路径是个坏主意
QT+=widgets
就是因为这个原因而存在的。此外,OP使用的不是
QWidget头
,而是
qwidgets
。我想你是糊涂了。此外,即使您执行手动包含解决方法,您仍然会遇到上述问题,这将导致包含另一个路径等。添加了一个最小的小部件应用程序来帮助检查qt安装。
qmake my_project.pro
make