2016-09-07 302 views
5

我希望通過將它作爲參數傳遞給make來定義C宏,該命令從命令行調用。如何將宏定義作爲參數進行傳遞?

背景:我希望指令#define ENABLE_OPT 1包含在我的C源代碼中,當選擇某個構建選項時。因此,我希望通過make命令行完成此操作,而不是修改源代碼 makefile。

這是如何實現的?我發現make -DENABLE_OPT=1 -f Makefile引發錯誤,'E','N'等是無效的參數。

+2

make CFLAGS =「 - DENABLE_OPT = 1」 – Serge

+1

相關問題http://stackoverflow.com/questions/9052792/how-to-pass-macro-definition-from-make-command-line-arguments-d-to -c-source –

+0

謝謝。我只在makefile中定義了LOCAL_CFLAGS,所以這不會覆蓋任何東西。聽起來不錯! –

回答

4

您可以使用--eval,這將評估字符串作爲一個makefile聲明:

make --eval="FLAGS+= -D ENABLE_OPT=1" 

make變量標誌時,那麼作爲一個編譯器參數來編譯代碼。

相關問題