2014-11-20 64 views
0

我在一個非常大的代碼庫中工作,該代碼庫有條件編譯標誌爲幾個不同的嵌入式硬件平臺構建代碼。有很大一部分代碼是常見的,並且有一個硬件適配層,它應該是獨立的h/w,但是也有很多通用代碼,可以對包含在#ifdef#else中的特定硬件函數進行函數調用進行條件編譯。不幸的是,這是我們在多個團隊中工作的範例,因此我需要使用它,即無法選擇轉向真正獨立於硬件的文件。我爲這3個平臺(迄今爲止)開發和調試這些平臺,並不斷從我的符號中添加/刪除編譯器標誌,並重新構建我的CDT索引,每次需要從一個平臺開發/調試問題到另一個。重建索引可能需要很長時間(長達一小時),即使採用積極的資源過濾。Eclipse CDT:在一個代碼庫中管理條件編譯(#ifdef)

我們使用Perforce作爲我們的CVS,我希望在單個Perforce工作區內工作,因此我不會與檢出哪些文件不同步。我試圖爲這些類型的平臺創建單獨的Eclipse項目,但是我收到一條錯誤消息,說明資源(Perforce工作區代碼)已被另一個項目使用。

有沒有人有任何建議?

我正在使用Eclipse Luna和CDT。

感謝

回答

0

對於您提到的需要刪除和添加符號和改變構建選項在項目屬性的一部分,這是配置對。假設給定配置(特定硬件平臺)的設置非常靜態,請定義配置列表(每個平臺一個),並根據相關平臺設置選項。這樣,只需更改配置就可以更改一組構建選項。

對於文件特定的設置也是如此,如「從構建中排除」。您可以爲每個平臺構建不同的文件集。

我不知道Eclipse是否會在每次切換配置時重新編制索引。