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