Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.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头的问题_C++_Qt - Fatal编程技术网

C++ 包括Qt头的问题

C++ 包括Qt头的问题,c++,qt,C++,Qt,在Qt中,一些标题通过更典型的 #include "QtCore/qtheader.h" 但有时它使用这种符号: #include <QString> #包括 我不知道有什么区别,也不知道为什么会这样。不管怎样,我在包含本身使用后一种符号的标题时遇到了麻烦。有什么想法吗 在C和C++中,当使用双引号时,它意味着:搜索与该文件相同的目录。当您使用时,它意味着:搜索包含路径 使用gcc,您可以使用-I命令行参数添加include路径 您正在使用Qt Creator和qmake吗?如

在Qt中,一些标题通过更典型的

#include "QtCore/qtheader.h"
但有时它使用这种符号:

#include <QString>
#包括
我不知道有什么区别,也不知道为什么会这样。不管怎样,我在包含本身使用后一种符号的标题时遇到了麻烦。有什么想法吗


在C和C++中,当使用双引号时,它意味着:搜索与该文件相同的目录。当您使用
时,它意味着:搜索包含路径

使用gcc,您可以使用
-I
命令行参数添加include路径


您正在使用Qt Creator和qmake吗?如果是,请编辑此问题/答案中的.pro:

我不知道是什么原因给您带来了麻烦,因为您没有指定足够的详细信息。总之,在C++中,当你使用时,你的意思是你要在包含路径中搜索。您可以在Qt中指定包含路径并添加一些目录,方法是添加:

INCLUDEPATH += ...
在项目文件中。 如果使用双引号,则要求将当前源目录添加到include路径

你会看到:

#include <QString>

实际上,通常在QtCore目录中。

这是您描述的奇怪行为。做

#include <QString>
获取OpenGL模块而不是

QT+=opengl

然后,您将获得所描述的行为。

由于您没有提供有关错误的信息以及您正在使用的开发环境类型,如果您不使用.pro文件,以下内容可能会成为一个问题。如果您实际使用的是.pro文件,这可能与您无关:

如果您使用的是Visual Studio而不是Qt项目文件,并且仅包含$(QTDIR)\include,则必须编写

#include <QtCore/QObject>
#include <QtGui/QWidget>
#包括
#包括
等等。这是因为Qt的include目录中的文件位于子文件夹“QtCore”、“QtGui”等中

如果不想在include中添加QtCore或QtGui或其他内容,则必须包括$(QTDIR)\include\QtCore、$(QTDIR)\include\QtGui等


(请注意,我不能100%确定include路径,无法在此计算机上查找)

发布实际错误消息、使用的命令行以及标题在计算机上的位置。您展示的第一个示例并不典型。我的理解是“-I”表示包含文件,-L”表示库文件。我错了吗?相反-L表示库路径(即.a或.so所在的位置),而-L表示库的名称。像
-lm
。我在上面写错了。让我来修一下。(我用了-L而不是-I)由于字体不好,我说include文件是
-I
(大写字母I)。
L
选项适用于库。应该不需要编辑.pro文件来获取核心Qt头,例如
QString
。应该不需要向
INCLUDEPATH
添加任何内容来获取Qt头。我确实没有这么说。我刚才说可以使用该指令添加新的include路径。问题本身,加上“不考虑”一词,让我觉得作者指的不是包括Qt标题在内的问题。我在命令行上使用gcc,而不是Qt creator。@glutz,知道您在命令行上使用gcc是一个重要的细节。如果要这样做,您绝对必须了解如何指定包含路径,否则使用Qt或其他许多库将一事无成。对于Qt,我绝对推荐使用构建系统(比如QMake)来帮助您。
QT+=opengl
#include <QtCore/QObject>
#include <QtGui/QWidget>