質問

次のコードが付いたMakeFileがあります。 IFステートメントで変数を設定しようとしています。エラーではありませんが %OPTION% 印刷するだけです %OPTION (1パーセントサインのみ)と $(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)
役に立ちましたか?

解決

依存関係ステートメント内に変数を設定することはできません(この場合は「init」など)。実際、ステートメントの場合も使用できません。変数は、MakeFileを呼び出す前に外部バッチファイルによって設定できます(およびそのバッチファイルはMakeFileを呼び出すことができます)、またはこの例でrelease_or_debugのような依存関係のステートメントの外側にあります。
依存関係ステートメント内の変数にアクセスするには、$(variable_name)を使用します。変数名が見つからない場合は、単に空白の文字列(「@echo test2 = $(option)」のように、変数オプションが見つからなかった場合など)を使用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top