codelite 5.1找不到<qstring> </qstring>

时间:2013-04-18 16:52:37

标签: c++ qt include codelite

在Ubuntu 12.10上使用CodeLite 5.1:

创建了一个最小的QTGui应用程序。建立并运行罚款。

#include <QApplication> 
#include <QButton> 
向导在main.cpp文件中插入了

- 没问题。我补充说:

#include <QString> 

按照QT文档,预处理器告诉我它找不到QString。我检查了项目的包含设置 -

../qt4 

../qt4/qt4GUI 

是否正确。我试过了:

#include <qt4/QString>

具有不同的案例排列 - 一切都没有。

怎么了? (也在CodeLite论坛上发布此内容)。

1 个答案:

答案 0 :(得分:1)

虽然QApplicationQButton是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是一个例子),它可以在不添加其他包含的情况下工作。