麻烦包括Qt标题

时间:2011-07-05 18:45:17

标签: c++ qt

在Qt中,通过更典型的

包含了一些标题
#include "QtCore/qtheader.h"

但有时它使用这种表示法:

#include <QString>

我不确定这是什么区别或为什么这样做。无论如何,我在使用自己使用后一种表示法的标题时遇到了麻烦。有什么想法吗?

感谢。

4 个答案:

答案 0 :(得分:4)

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

#include <QString>

应该“正常工作”,因为它几乎是标准的做法。

我唯一能想到的是你已经覆盖了项目文件中的QT变量。例如,如果你这样做

QT=opengl

获取OpenGL模块而不是

QT+=opengl

然后你会得到你描述的行为。

答案 1 :(得分:1)

由于您没有提供有关错误以及您正在使用的开发环境的信息,因此如果您不使用.pro文件,则可能会出现以下问题。如果您实际使用.pro文件,这可能与您无关:

如果您正在使用例如Visual Studio而不是Qt Project文件,你只包含$(QTDIR)\ include,那么你将不得不写

#include <QtCore/QObject>
#include <QtGui/QWidget>

等等。这是因为Qt的include目录包含子文件夹“QtCore”,“QtGui”等文件。

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

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

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:0)

我不知道是什么原因造成你的麻烦,因为你没有指明足够的细节。无论如何,在C ++中使用&lt;&gt;时,你的意思是你想在include路径中搜索。您可以通过添加:

指定包含路径并在Qt中添加一些目录
INCLUDEPATH += ...

在项目文件中。 如果您使用双引号,则要求当前源目录添加到包含路径。

所以你会看到:

#include <QString>

因为在你的系统包含路径中应该有一个名为QString的文件。其中确实存在:

#include "qstring.h"

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