2012-07-12 36 views
2

我想每一個指數的#ifdef #else和塊在我的C /與Eclipse的靛藍CDT我索引8.0.2上unbuntu索引所有的#ifdef #else和塊與CDT

添加符號C++源文件是行不通的,因爲它不會支付的#else塊

有什麼辦法,我可以強制Eclipse CDT的簡單地忽略的#ifdef #else和塊?像其他索引做(如emacs的cscope的)

我一直在尋找了幾天,並沒有發現什麼好的解決辦法。

我的代碼,一個非常大的量,並且將最好不要修改或移除的#ifdefs甚至臨時

感謝。

+0

的可能重複[我怎樣才能得到Eclipse來索引碼內的#ifdef .... #ENDIF(http://stackoverflow.com/questions/3121920/how-can-i-get-eclipse-to-索引碼內-IFDEF-ENDIF) – 2017-04-02 13:15:44

回答

0

簡短的答案是否定的。 CDT預處理器不能這樣工作。它遵循正確的語義,意味着它只解析#ifdef的一個分支。 Emacs可能會進入每個分支,但不會進行與CDT一樣正確或完整的分析。

你唯一的選擇是建立被配置爲解析每個分支多個構建配置。然後,您可以在想要在不同分支中工作時切換構建配置。這遠非理想,但因爲設置起來會很費時,並且每次切換時都會觸發重新索引。 (也可以將其配置爲重新編制索引,轉到窗口>首選項> C/C++>索引器並選擇「使用主動編譯配置」)

請注意,CDT解析器將解析非活動的#else分支只是爲了找到要在大綱視圖中顯示的聲明。