3

シェル(bashですが、移植性が必要です)とGNUMakefileを使用しています。私はこのコードを持っています:

check_commands:
        command -v find >/dev/null
        command -v asdf >/dev/null

想定どおり、最初のコマンドが渡され、2番目のコマンドがエラーでMakefileを中止します。ここで、を削除し>/dev/nullます。なぜですか

check_commands:
        command -v find

次のエラーが発生しますか?

make: command: Command not found.
4

1 に答える 1

13

GNU makeのソースをざっと見てみるとjob.c、可能な場合、つまりコマンドラインが十分に単純で(cmd argsリダイレクトや複合コマンドなどがない形式)、シェルがデフォルトである場合に、シェルの起動を回避しようとします。 1。問題は、それcommandが組み込みであり、関連する実行可能ファイルがないため、makeからのエラーメッセージです。> /dev/nullmakeがコマンドを複雑すぎると見なし、起動するように任せている場合は発生しませんsh

于 2012-10-20T19:12:00.020 に答える