私は&が定義されていないMACROでソースコードを2回コンパイルしようとしています。デフォルトのためのマクロが&を定義されていないので、私はので、私はこのONE_MACRO
file.h
でを使用していますマクロ定義がどのようにしてMakefileからヘッダファイルに渡されますか?
$(MAKE) -c $(present_dir)/new_dir -DONE_MACRO=1
のように、Makefileのからの引数を通じて、このマクロを定義したいです。 この定義がどのように反映され、プリプロセッサを知るか。ここではcygmake
を使用しています。どのようにMACRO as argument to compiler
をcygmakeツールで渡す。
ファイル.h: - このONE_MACROは、メイクファイルから定義され、どのように
#if ONE_MACRO
#define some_targets
#else
#define other_targets
#endif
、イム
Makefileを以下のように引数としてマクロを渡そうとし: -
MY_TARGET:
$(MAKE) -C $(present_dir)/target_dir -D ONE_MACRO=1 $(MAKECMDGOALS)
あなたの質問は不明です。 [This](http://www.cplusplus.com/doc/tutorial/preprocessor/)は、 'file.h'で'#ifdef'を使う方法を示しています。それはあなたの質問に答えますか? – Beta
あなたが何を求めているかははっきりしていません。コンパイラは '-D MACRO_DEFINE = 1'引数(オプション文字 'D'と値 'MACRO_DEFINE = 1'の間にスペースを入れずに書かれています)を' #define MACRO_DEFINE 1'を読み込むコード行のように扱います。これは、実際のコードが処理される前に設定されます。それはまっすぐなので、おそらくあなたが求めているものではありませんが、あなたが求めているものは明確ではありません。 –
私は**マクロを引数としてMakefileからコンパイラに渡したい**、このマクロは 'file.h'.soでコンパイル中に' file.h'をコンパイルする**マクロに基づいて2回コンパイルする定義済みおよび未定義**です。私は今、それがはっきりと思う。 – Kumar2080