私は他のmakefileを実行するmakefileを持っています。それらのメイクファイルの一つにバグがあり、-j 2
以上で実行されると失敗することがあります。どのようにして再帰的にmakefileを呼び出すことができますか?私は通常、外側のmakefileを-j 9
で実行します。1つのparralelジョブでmakeを再帰的に実行するには?
0
A
答えて
2
-j1
を追加すると、makefileを実行しているコマンドラインが確実に動作します。しかし、私は別の方法で問題を解決することをお勧めします。
Q:トラブルメーカーは誰ですか?
A:ルールに間違った依存関係を持つMakefile。
正しい解決策は、メークファイルを修正することです。最も簡単な修正は、特別な.NOTPARALLEL
ターゲットを追加するだけです。
GNU https://www.gnu.org/software/make/manual/html_node/Special-Targets.html手動ください:
.NOTPARALLELがターゲットとして言及され、その後、メイク のこの呼び出しは「-j」オプションが指定されている場合でも、逐次実行されます。 再帰的に呼び出されるmakeコマンドは、(メイクファイルにもこのターゲットが含まれていない限り)レシピを並列で実行します。 の前提条件はすべて無視されます。
だからトラブルのmakefileに
# TBD: This makefile is broken: it doesn't support -j make option.
.NOTPARALLEL:
を追加し、それを実行するコマンドラインを触れないでください。このようにすると、自己文書化の回避策になります。
0
このようなオプション-j1
を追加するだけです。$(MAKE) -C ${PROJECT_BUILD_DIR} -j1 install
が動作します。
関連する問題
- 1. 1つのジョブを同時に実行するには?
- 2. 再帰的なドライランを実行する
- 3. 再帰的ループを実行するには?
- 4. 複数のSQLジョブを1つのジョブで同時に実行する
- 5. 1つの表で従属行を再帰的に削除します。oracle sql
- 6. BigQuery UDF内でSQLを再帰的に実行する
- 7. 再帰的に1行で合計値を返します
- 8. talendで失敗したジョブを自動的に再実行するには?
- 9. 1つの再帰的クエリの出力を別の再帰的クエリに使用できますか?
- 10. Javascriptの実行を再帰的配列
- 11. make:暗黙ルール、(tail-)再帰的に適用されますか?
- 12. GNU makeのSECONDEXPANSIONと再帰
- 13. 再帰関数で行を1回実行する
- 14. R:リストの操作を再帰的に実行する
- 15. 再帰的に別の関数を実行する再帰関数を実装する
- 16. 1つのSQL文内の再帰的および非再帰的なACL
- 17. 1つのジョブを並列に実行する
- 18. golangとの再帰的同時実行
- 19. `tmutil isexcluded`を再帰的に実行する
- 20. Android Appを再帰的に実行する
- 21. 再帰的にsqliteで再帰的な計算を行う代わりに?
- 22. Scalaでこの再帰的メソッドの尾を再帰的にする方法は?
- 23. Pentahoで1つのジョブを実行した後に2つのジョブを同時に起動する方法
- 24. 約束でYeomanで再帰的なプロンプトを実行するには?
- 25. ファイル上でMavenコマンドを再帰的に実行
- 26. は、再帰的に
- 27. は、再帰的に
- 28. は、再帰的に
- 29. c#再帰的帰りに2つのリストを追加する
- 30. tSQL - 再帰的実行合計
と '$(MAKE)-j1'として内部makeを呼び出すと、あなたは何をしますか? –