2016-09-07 7 views
5

私は、コマンドラインから呼び出されるmakeの引数としてCマクロを渡して定義したいと考えています。マクロ定義をmakeの引数としてどのように渡すことができますか?

背景:特定のビルドオプションを選択したときに、指示文#define ENABLE_OPT 1を自分のCソースコードに含めます。したがって、ソースコードまたはのメイクファイルを変更する代わりに、makeコマンドラインでこれを実行してください。

これはどのように達成できますか?私はmake -DENABLE_OPT=1 -f Makefileが 'E'、 'N'などは無効な引数であるというエラーをスローすることがわかります。

+2

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を使用することができます。

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

、コードをコンパイルするコンパイラの引数として使用されている変数FLAGSを作ります。

関連する問題