「パラレル正しい」です。すなわち、すべての依存関係が正しく、徹底的に指定されている論理的に正しい意味です
UPDATE
想定そこから来ることはできません。
はい、異なるバージョンのmake
を使用すると、異なる制作につながる可能性があります。特に、あるバージョンから別のバージョンへのそのような長い飛躍のために、何百もの理由があります。ここでは、バージョン3.82のリリースノートから、例です。
* WARNING: Backward-incompatibility!
The library search behavior has changed to be compatible with the standard
linker behavior. Prior to this version for prerequisites specified using
the -lfoo syntax make first searched for libfoo.so in the current
directory, vpath directories, and system directories. If that didn't yield
a match, make then searched for libfoo.a in these directories. Starting
with this version make searches first for libfoo.so and then for libfoo.a
in each of these directories in order.
ので、バージョン3.82ではなく3.81を使用すると、リンカが別のライブラリファイルを使用するため、異なるバイナリを生成させることができます。
3.81と4.2.1の間のすべての同様の可能性をリストすることは、莫大な作業になります。
はい。異なるバージョンの 'make 'を使うことが理由になります。あなたの依存関係が徹底的に記述されていない場合、並列makeは別の潜在的な理由です。例: 'foo.c'は' foo.l'から最初に生成されてコンパイルされ、 'foo.o'を生成します。しかし、 'make 'に' foo.c'に 'foo.l'があることを忘れてしまいました。 'foo.l'が変更された場合、' --jobs = 1'で動作しますが、 '--jobs = 2'で' foo.c'がコンパイルされて更新される。 –
@RenaudPacaletはい良いキャッチ!しかし、 'make 'のバージョンを変更するだけで効果が得られるかどうかは分かりません。だから私は質問を更新しました。 – Adrian