2011-09-23 66 views
10

我有許多.c.h文件,通過將代碼塊放入預處理器指令中來禁用部分代碼。爲make中的所有文件定義預處理器變量

#ifdef FOOBAR 
// some code that can be compiled if needed by defining FOOBAR in pre-processor. 
#endif 

不,我需要定義FOOBAR使得它的每一個由使用GCC編譯make文件中定義。

有沒有辦法做到這一點做一些選擇或Makefile

謝謝。

回答

16

編譯器選項-DFOOBAR添加到make變量CFLAGS

+3

應當指出的是,這不只是一個gcc主義但對於C編譯器調用POSIX標準的一部分。 –

+0

謝謝......儘管我有幾個文件夾,每個文件夾都有自己的'Makefile',並且我必須將這個'CFLAGS = ...'添加到它們中的每一箇中。我希望在調用make時有這樣的事情。像例如'make -flags -DFOOBAR'或類似的東西。但是,謝謝你的回答。 – mtahmed

+4

@ mtahmed,有。只要將變量定義放在make的命令行中,'make CFLAGS =' - O3 -march = native -DFOOBAR'' –