2017-04-07 98 views
0

在我的項目,QtCreator讓我做的事:不能包含爲<QtCore /的QString>

#include <QtCore> // include all core 
#include <QString> 

但不

#include <QtCore/QString> 

我有一個.pro文件在那裏我有QT += core ...所以我不知道是什麼問題。我看着編譯輸出,它追加-I/path/to/qt/include/QtCore/但我想要它也添加-I/path/to/qt/include/。我不知道是什麼問題。我在Ubuntu 14.04上使用這個確切的項目,現在升級到16.04。現在我有這個問題。我的QTDIR已設置,我的Qt Kit沒有顯示任何奇怪等。

+0

什麼版本的Qt就像文件說,你應該寫#include <QString>? 4.8或5.x? – rubenvb

+0

Qt版本是5.7.1。 – meguli

+3

爲什麼你想首先執行'#include '?包含頭文件的Qt支持的方式就是'#include '。 – Angew

回答

1

Qt沒有記錄到include dir的路徑在編譯時位於包含路徑中。你不應該寫#include <QtCore/QString>

http://doc.qt.io/qt-5/qstring.html

如果你真的需要,你可以手動.pro文件將此路徑添加到您的包含路徑:

INCLUDEPATH += /path/to/qt/include 
+0

默認情況下不應該使用。代碼庫使用前者,我必須遵守它。在我轉向Ubuntu 16.04之前,所有工作都很好。 – meguli

+0

@meguli我不認爲Qt曾經支持包含''風格。 – Angew

+0

那爲什麼它以前工作?我沒有'INCLUDEPATH + =/path/to/qt/include',但它正確地看到了。 – meguli