2012-10-14 34 views
0

在Eclipse中使用CDT。Eclipse C排除構建配置中的頭文件

是否有一個快速的方法有兩個相同的構建配置,但在一個配置中只使用SRC/foo.h中,另一隻SRC /酒吧/ foo.h中?

在src /目錄有很多其他的頭文件,和我樂觀地希望沒有一個將它們添加所有之一,當只有一個文件實際上是不同的。

我也真的不想動任何文件或者修改它們,因爲它們不是我寫我自己的庫或目錄結構。 (如果我真的必須,那麼我想我必須把它整理出來)

我想某種「排除」列表將是理想的。這是否存在?

+0

你是什麼意思,「只有一個文件實際上是不同」?這些頭文件是什麼,來自外部庫? – ForceMagic

+0

是的,這些來自外部庫。我有兩個構建配置。兩者都使用所有相同的庫文件。除了一個文件需要不包含在其中一個版本中,而是另一個路徑中的另一個文件。 – SpiRail

回答

2

定義一個宏告訴你哪個構建配置你正在建設,然後用它來決定要包括哪些文件。

您的項目右擊,選擇屬性。然後在彈出的對話框中選擇C/C++ Build,然後選擇Settings。你最終應該在一個視圖中定義預處理器定義(宏)。

在你的頭文件

然後要麼做到以下幾點:

#ifndef MY_MACRO 

// contents of header file only available when MY_MACRO is NOT defined  

#endif 

或者你可以(也許應該)在入選的點做代替,所以這是一個源文件:

#ifdef MY_MACRO 
# include "bar.h" 
#else 
# include "foo/bar.h" 
#endif 

如果您包含來自多個源文件的頭文件,並且不想複製上述行,則可以添加另一個頭,只需將上面的行復制粘貼,然後在任意位置包括該頭就可以包含。

+0

如何做到這一點有一個很好的鏈接? – SpiRail

+0

謝謝!看起來像工作。我找不到任何「宏」,所以我只是把它作爲一個「符號」下的C/C++常規 - >路徑和符號 – SpiRail