6

「?=」が含まれているIntelのmakefileがあります。好き

COMPILER ?= $(GCC_PATH)g++

だが

EXECUTABLE = run

?=と=の違いは何ですか?2番目の代わりに最初のものを使用する必要があるのはいつですか?

どうもありがとうございます。

4

2 に答える 2

10

すばらしいドキュメントを引用してください:

まだ設定されていない場合にのみ変数を値に設定する場合は、「=」の代わりに省略演算子「?=」を使用できます。

于 2012-05-15T12:03:29.827 に答える
0

?=条件付き割り当て用です。つまり、まだ定義されていない場合は値を割り当てるだけで、それ以外の場合はそのままにします。あなたの例では、make COMPILER=arm-none-gccthenarm-none-gccを指定すると、デフォルトのg ++​​よりもコンパイラとして使用されます。入力するだけでmake、g++がCOMPILERのオプションとして使用されます。を使用する=と、COMPILERには、割り当てが発生したときと場所に値が割り当てられます。makeファイルの詳細については、初心者向けのmakefileについてを参照してください。

于 2013-01-07T11:08:32.350 に答える