2013-08-28 52 views
0

我在Qt Creator中有代碼完成問題。我有一個名爲OgreHeaders.h的預編譯頭文件。我使用qmake mkspec unsupported/linux-clang與clang一起建設。 我的項目構建,但是當我編輯它時,我沒有得到任何代碼提示。我認爲這是因爲我的預編譯頭文件使用-include-pch編譯器選項,而不是#include指令。所以Qt Creator的代碼模型甚至沒有找到它。我有一個關於在#ifdefs#ifndefs包裝標題的想法,所以它會解析它,但不編譯。Qt Creator預編譯頭文件代碼完成

#ifdef PCH 
#include <OgreHeaders.h> 
#endif 

我需要以某種方式#define PCH在Qt Creator的代碼模型,而不是在編譯器中的一個。或者做相反的事情。我嘗試使用QMAKE_CXX_FLAGSDEFINES,但Qt Creator將其選中。

我看到this關於整合的文章。在文章的底部是說:

當你去「項目」模式,你會看到一個額外的標籤與 「代碼完成設置」,在這裏你可以選擇「自定義」報頭。 選擇此選項時,代碼模型將使用該標頭作爲 緩存,但編譯器不會使用它。

我在Qt Creator(2.8.0)中沒有這個選項。任何想法如何解決這個問題,或者我需要建立從git叮噹整合Qt Creator?

回答

0

把要麼

#define PCH 

#undef PCH 

PROJECT_NAME.config文件在你的項目的根目錄中,其中PROJECT_NAME是Qt Creator中項目的名稱 - 就像PROJECT_NAME.filesPROJECT_NAME.includes

+0

這改變了Qt Creator代碼完成'#definition'或編譯器的? – Nazar554

+0

是的,這個文件只被Qt Creator代碼完成和高亮使用;它沒有傳遞給預處理器/編譯器。 – hluk