2014-03-25 117 views
1

使用pre-compiled headers in Qt,它工作並減少了我的項目的編譯時間。 我已經把常見的C++和Qt頭文件在一個名爲all.h文件,以避免在每一個翻譯單元重新編譯他們:Qt中的預編譯頭文件避免了重新編譯修改後的頭文件

#ifndef _ALL_H_ 
#define _ALL_H_ 

#include <cstdlib> 
#include <cmath> 
. 
. 
#include <QGlobal> 
#include <QVector> 
. 
. 
#endif 

另外我有他們經常改變一些頭文件(我不需要對它們進行預編譯),但qmake不會重新編譯這些頭文件,我必須徹底重建整個項目。

有什麼問題?我如何修改我自己的頭文件並調用編譯來重新編譯它們?

回答

1

嘗試將這些行添加到您的.pro文件,我把它稱爲qmake的錯誤(也許):

DEPENDPATH += path_to_source 
INCLUDEPATH += path_to_source 

例如:

DEPENDPATH += . 
INCLUDEPATH += . 
0

qmake,就像任何make應用程序需要知道你的應用程序的來源是什麼。 .cpp源文件很容易理解,但需要弄清楚.h源文件。另外,現代製作實用程序想知道哪些頭文件會影響哪些翻譯單元,因此它們只能重新編譯特定的目標文件。

+0

我已經添加了需要的頭文件用'HEADERS'在'.pro'中重新編譯。當我不使用預編譯功能時,一切都很好。但使用後,我有這個問題。 –