2

makefile に次のコマンドがあります。

$(OUT)/classes.jar: $(JavaFileList) $(libJars) $(ANDROID_JAR) | $(OutClasses)
    @echo javac: `wc -l < $(JavaFileList)` source files

    if [ $$ENABLE_MV = 'YES' ]; then \
        echo Backup $(OutClasses) to $(OutClasses).bak; \
    fi

ただし、毎回次のコマンドが出力されます。

if [ $$ENABLE_MV = 'YES' ]; then \
    echo Backup $(OutClasses) to $(OutClasses).bak; \
fi

これを止めるには?"@" が if..fi で機能しない場合、次のエラーが発生します: /bin/sh: 1 行目: @echo: コマンドが見つかりません

4

1 に答える 1

4

@抑制されるには、すべての論理行が a で始まる必要があります。論理行は、行末のバックスラッシュを使用して結合された物理行に後続のすべての行を加えたものです。したがって、あなたの場合、@前のif行 ( echo) がバックスラッシュで終わっていないため、これは新しい論理行であるため、 の前に が必要です。@後続の行は同じ論理行 (バックスラッシュで接続) であるため、必要ありません。

$(OUT)/classes.jar: $(JavaFileList) $(libJars) $(ANDROID_JAR) | $(OutClasses)
        @echo javac: `wc -l < $(JavaFileList)` source files

        @if [ $$ENABLE_MV = 'YES' ]; then \
            echo Backup $(OutClasses) to $(OutClasses).bak; \
        fi
于 2013-06-19T13:35:12.993 に答える