2

「-j8」フラグをグローバルに設定することについて質問したところ、答えはに設定MAKEFLAGS="-j8"することを提案しまし/etc/environmentたが、再帰的なmakeの問題になる可能性があるとのことでした。

ただし、GNU のドキュメントには-j8、特別な方法で処理され、make の再帰呼び出しには渡されないと記載されています。

「-j」オプションは特殊なケースです (並列実行を参照)。これを何らかの数値「N」に設定し、オペレーティング システムがそれをサポートしている場合 (ほとんどの UNIX システムではサポートされていますが、通常はサポートされていません)、親の make とすべてのサブ make が通信して、「N」のみが存在することを確認します。 ' それらすべての間で同時に実行されているジョブ。再帰的とマークされたジョブ (「レシピを実行する代わりに」を参照) は、ジョブの合計にカウントされないことに注意してください (そうしないと、'N' 個のサブ make が実行され、実際の作業用にスロットが残っていない可能性があります!)

それで、設定MAKEFLAGS="-j8"/etc/environment問題がありますか?

4

1 に答える 1

3

お使いのオペレーティング システムがサポートしている場合、問題はありません。何らかの理由でそうでない場合、またはあなたのmakeがgnu makeでない場合、それは良い考えではありません. また、2 つの make が通信するかどうかにかかわらず、別の make を実行するプログラムを make で実行するかどうかも明確ではありません。

于 2013-07-05T11:27:48.977 に答える