VS 2010 で一度に複数の C++ コンパイル プロセスを実行するにはどうすればよいですか? つまり、オブジェクト モジュールを並行して構築するということです。一度に複数のプロジェクトをビルドすることに興味はありません ([ツール] > [オプション] > [ビルドと実行] < 並列プロジェクト ビルドの最大数については知っていますが、それは私が望むことではありません)。
基本的に、Visual Studio の「make -jN」に相当するものを探しています。
VS 2010 で一度に複数の C++ コンパイル プロセスを実行するにはどうすればよいですか? つまり、オブジェクト モジュールを並行して構築するということです。一度に複数のプロジェクトをビルドすることに興味はありません ([ツール] > [オプション] > [ビルドと実行] < 並列プロジェクト ビルドの最大数については知っていますが、それは私が望むことではありません)。
基本的に、Visual Studio の「make -jN」に相当するものを探しています。
また、Ross Smith がコメントで述べたように、プロジェクトで「マルチプロセッサ コンパイル」オプションをオンにする必要もあります。
マルチスレッドを使用して VS をビルドするには、2 つのスイッチを設定する必要があります (どちらもプロジェクト固有です)。
ツール->オプション->プロジェクトとソリューション->VC++ プロジェクト設定->最大同時 C++ コンパイル設定も確認してください。デフォルト値は 0 で、VS はできるだけ多くの並行コンパイルを使用できます。
ネクロリスのコメントは正しい解決策のようです。
/MP オプションを指定すると、コンパイラはそれ自体の 1 つまたは複数のコピーを、それぞれ別のプロセスで作成します。これらのコピーは、ソース ファイルを同時にコンパイルします。その結果、ソース ファイルのビルドにかかる合計時間を大幅に短縮できます。
プロジェクトレベルで設定できることに注意してください(したがって、プロジェクト内のすべてのファイルに適用されます)。また、個々のファイルにも設定できます。たとえば、#import
.
特に、/MP は通常、プリコンパイル済みヘッダーや#import
;を使用するソースと互換性がありません。この場合、プロジェクトに /MP フラグを設定してから、単一のファイル (通常は stdafx.cpp と #import を使用する任意のファイル) でフラグをクリアできます。
jom はあなたが探しているツールです。
Wiki から: http://qt-project.org/wiki/jom
jom は、複数の独立したコマンドの並列実行をサポートする nmake のクローンです。基本的に、GNU make と同様に -j コマンド ライン スイッチを追加します。
ドキュメンテーションのほとんどは、Windows での Qt ライブラリ ビルドを高速化しようとする Qt 開発者を対象としていますが、nmake と互換性のある makefile があれば、jom は Qt 以外のプロジェクトでも問題なく動作するはずです。
wiki ページにはダウンロード可能なバイナリがあり、nmake と同じように jom を呼び出します。
これが私がしたことです
1)「プロジェクトとソリューション」->「ビルドと実行」の下よりも「ツール」->「オプション」に移動します。コアの数がありました。最初はこれだけでいいと思ったけどそうでもない
2) プロジェクトを右クリックし、プロパティを選択します。「構成プロパティ」->「C/C++」->「コマンド ライン」の下に/MP4
、4 はコアの数を入力します。フラグに互換性がないという警告が表示されるので、別のステップがあります
3) 「構成プロパティ」->「C/C++」->「コード生成」の下に「最小限の再構築を有効にする」があります。いいえに変更します。
再構築すると、タスク マネージャーに複数の CL プロセスが表示されます。