在Ubuntu 12.10上使用CodeLite 5.1:
创建了一个最小的QTGui应用程序。建立并运行罚款。
#include <QApplication>
#include <QButton>
向导在main.cpp文件中插入了- 没问题。我补充说:
#include <QString>
按照QT文档,预处理器告诉我它找不到QString。我检查了项目的包含设置 -
../qt4
和
../qt4/qt4GUI
是否正确。我试过了:
#include <qt4/QString>
具有不同的案例排列 - 一切都没有。
怎么了? (也在CodeLite论坛上发布此内容)。
答案 0 :(得分:1)
虽然QApplication
和QButton
是Qt GUI模块的一部分,但QString
是Qt核心模块的一部分。 GUI取决于Core,因此Core库已经链接,这不是问题。
问题似乎是你的include路径只包括Qt顶层以及GUI子目录。 Qt的头文件以模块结构,每个模块一个目录。这意味着<QApplication>
和<QButton>
标头位于../qt4/qt4GUI
中,因此编译器可以找到它。
但是,QString
位于../qt4/qt4Core
(1)中,因此可以包含在#include <QtCore/QString>
(2)中它将在正确的模块子目录中查找,或者通过将子目录添加到项目配置中的包含路径(推荐),因此#include <QString>
也可以工作。
(1)我认为这应该是../qt4/QtCore
,对于Qt GUI ../qt4/QtGui
,但是你在问题中写了不同的内容......
(2)在Qt的内部,其他模块的类包含在这里,即相对于Qt顶级包含路径,所以如果你包含一个使用QString
的类( QApplication
是一个例子),它可以在不添加其他包含的情况下工作。