testコマンドを使用して失敗します問題。 誰かがこの問題を解決するのに手伝ってもらえますか?私はこれがbash/Makefileターゲットのバグであることを願っています。Makefileの偽のターゲットはMakefileのための次のような単純な偽のターゲットが失敗している
答えて
あなたのレシピ:$(dir)/$(file)
が存在しないと が$(dir)/$(file)
が存在する場合(非ゼロを返す)失敗した場合
-test ! -f $(dir)/$(file)
は(リターン0)を成功します。 -
の接頭辞のために、makeは失敗を無視します。デフォルトでは、それは失敗を無視していると報告し、停止する代わりに を実行します。
ルック:
Makefileの
dir=/etc
file=fstab
.PHONY: all install
all: install
echo "Success"
install:
-test ! -f $(dir)/$(file)
を実行し、それは:
$ make
test ! -f /etc/fstab
Makefile:8: recipe for target 'install' failed
make: [install] Error 1 (ignored)
echo "Success"
Success
bash
が壊れていません。 make
は壊れていません。何も悪いことはありません。
あなたも、あなたがそれらを黙らでき その後、make
のprogessと診断出力を表示したくない場合は、次の
$ make --silent
Success
これは、ファイルが存在することを意味します。つまり、testコマンドは0を返し、エラーメッセージ(make:[install] Error 1(ignored))を返します。私が間違っているなら、私を訂正してください。 –
いいえコマンドが0を返した場合は成功し、0以外の場合は が返されます。 (これは特有の 'make'解釈ではありません:UNIXのようなOS、そのシェル、コマンド、システムコールの解釈は時間の始まり以来です)' test'コマンドはファイルが存在するため失敗し、1を返します。 Makeは '-'接頭辞のためにそのエラー(戻りコード1)を無視します。それはそのエラーを無視していると報告し、それは続けます。 –
デフォルトで--silentをどのように実行するのですか? – dlite922
- 1. GNU Makefileに依存しない偽のターゲットを作成するには?
- 2. Makefileのターゲットは、
- 3. Hyperledgerファブリック "Makefile:107:ターゲット 'ライセンス'のレシピが失敗しました
- 4. Makefile:クロスコンビネーションのターゲット
- 5. ターゲットのmakefile
- 6. Makefileのすべてのターゲット
- 7. makefileターゲットのforeach&silencer
- 8. ファイルが存在しない場合にのみMakefileがファイルの偽ターゲットを実行する
- 9. Makefileの混乱偽ハック
- 10. 単純なアプリケーション用のMakefile
- 11. Makefileのターゲット固有の割り当て
- 12. Makefileは、この単純なMakefileを考えてみましょう中間
- 13. Makefile:517: 'matlab/+ caffe/private/caffe_.mexa64'ターゲットのレシピ作成に失敗しました:***
- 14. GNU Makefileとbashのターゲットのためのレシピで
- 15. Makefileのレシピが失敗しました
- 16. Makefileターゲットの異なる/複数の部分の一致
- 17. Makefile - すべての可能なターゲットを構築する
- 18. 偽のターゲットでのワイルドカードの一致
- 19. Makefile複数のターゲット対分離したターゲットは、パターンの結果が異なります。
- 20. コマンドの構文が正しくありません。 Makefile:2:ターゲット '...'のレシピが失敗しました
- 21. Afterターゲットの失敗が失敗しないmsbuild run
- 22. アクティブレコードの移行は純粋な偽装から失敗していますか?
- 23. 変数リストをMakefileのターゲットとして使用するには?
- 24. Makefileの前提条件としてのターゲット固有の変数
- 25. Makefileのターゲット複数の情報源が、唯一の目標は
- 26. 1つのターゲットが別のターゲットのターゲットに依存するように、Makefileを構造化するにはどうすればよいですか?
- 27. 次のように私は私のMakefileのルールになりたいと仮定したMakefile
- 28. フライウェイの偽の失敗
- 29. エラーメッセージ: "Makefile:1:***不正なターゲット固有の変数定義。停止"
- 30. Makefileのツリーは複数のターゲットをビルドします
は、あなただけの 'の/ etc以来、test''の終了ステータスを取得されていません/ fstab'はおそらく存在するでしょうか?あなたは何をしようとしているのですか? – chepner
問題の内容を正確に説明してください。その後、私たちはそれを整理するのを手伝うことができます。すべてが私にとって正しく働いているように見えます。 – MadScientist
はい、私はそれをしようとしています。私は/ etc/fstabが常に存在することを知っています。しかし、終了したファイルの場合、このチェックは「make:[インストール]エラー1(無視)」エラーを表示します。 –