1

次のコードのmakefileがあります。ifステートメントに変数を設定しようとしています。エラーは発生しませんが、(パーセント記号が1つ%OPTION%だけで)印刷されるだけで、何も印刷されません。助けてください%OPTION$(OPTION)

Makefile

RELEASE_OR_DEBUG=debug  
init:  
    SET OPTION=test  
    @echo test1 = %OPTION%  
        @echo test2 = $(OPTION)  
    if ".$(RELEASE_OR_DEBUG)" == ".debug" SET OPTION="-d"  
    @echo OPTION = %OPTION%  
    @echo OPTION = $(OPTION)  

出力

test1 = %OPTION  
test2 =   
if ".debug" == ".debug" SET OPTION="-d"  
OPTION = %OPTION  
OPTION = $(OPTION)
4

1 に答える 1

2

依存関係ステートメント (この場合は "init" など) 内で変数を設定することはできません。実際、そこでも if ステートメントを使用することはできません。変数は、メイクファイルを呼び出す前に外部バッチ ファイルによって設定することができます (そして、そのバッチ ファイルはその後メイクファイルを呼び出すことができます)、またはこの例の RELEASE_OR_DEBUG のような依存関係ステートメントの外部で設定できます。
依存関係ステートメント内の変数にアクセスするには、$(VARIABLE_NAME) を使用します。変数名が見つからない場合は、単に空白文字列が使用されることに注意してください (変数 OPTION が見つからなかった "@echo test2 = $(OPTION)" テストなど)。

于 2010-08-16T18:27:29.160 に答える