在Qt中,通过更典型的
包含了一些标题#include "QtCore/qtheader.h"
但有时它使用这种表示法:
#include <QString>
我不确定这是什么区别或为什么这样做。无论如何,我在使用自己使用后一种表示法的标题时遇到了麻烦。有什么想法吗?
感谢。
答案 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目录中。