57

VS 2010 で一度に複数の C++ コンパイル プロセスを実行するにはどうすればよいですか? つまり、オブジェクト モジュールを並行して構築するということです。一度に複数のプロジェクトをビルドすることに興味はありません ([ツール] > [オプション] > [ビルドと実行] < 並列プロジェクト ビルドの最大数については知っていますが、それは私が望むことではありません)。

基本的に、Visual Studio の「make -jN」に相当するものを探しています。

4

6 に答える 6

34
  1. ツール -> オプション
  2. プロジェクトとソリューション\VC++ プロジェクトの設定
  3. 最大同時 C++ コンパイル

また、Ross Smith がコメントで述べたように、プロジェクトで「マルチプロセッサ コンパイル」オプションをオンにする必要もあります。

  1. プロジェクトのプロパティ
  2. 構成プロパティ > C/C++ > 一般
  3. マルチプロセッサ コンパイル
  4. 利益!
于 2011-05-30T04:13:40.273 に答える
18

マルチスレッドを使用して VS をビルドするには、2 つのスイッチを設定する必要があります (どちらもプロジェクト固有です)。

  • プロジェクト プロパティ -> C/C++ -> 一般 ->マルチプロセッサ コンパイルの設定:はい (/MP)
  • プロジェクト プロパティ -> C/C++ -> コード生成 ->最小限の再構築を有効にする:いいえ (/Gm-)

ツール->オプション->プロジェクトとソリューション->VC++ プロジェクト設定->最大同時 C++ コンパイル設定も確認してください。デフォルト値は 0 で、VS はできるだけ多くの並行コンパイルを使用できます。

于 2012-12-08T21:55:42.913 に答える
15

ネクロリスのコメントは正しい解決策のようです。

/MP (複数のプロセスでビルド)

/MP オプションを指定すると、コンパイラはそれ自体の 1 つまたは複数のコピーを、それぞれ別のプロセスで作成します。これらのコピーは、ソース ファイルを同時にコンパイルします。その結果、ソース ファイルのビルドにかかる合計時間を大幅に短縮できます。

プロジェクトレベルで設定できることに注意してください(したがって、プロジェクト内のすべてのファイルに適用されます)。また、個々のファイルにも設定できます。たとえば、#import.

特に、/MP は通常、プリコンパイル済みヘッダーや#import;を使用するソースと互換性がありません。この場合、プロジェクトに /MP フラグを設定してから、単一のファイル (通常は stdafx.cpp と #import を使用する任意のファイル) でフラグをクリアできます。

于 2012-04-06T07:22:38.760 に答える
4

jom はあなたが探しているツールです。

Wiki から: http://qt-project.org/wiki/jom

jom は、複数の独立したコマンドの並列実行をサポートする nmake のクローンです。基本的に、GNU make と同様に -j コマンド ライン スイッチを追加します。

ドキュメンテーションのほとんどは、Windows での Qt ライブラリ ビルドを高速化しようとする Qt 開発者を対象としていますが、nmake と互換性のある makefile があれば、jom は Qt 以外のプロジェクトでも問題なく動作するはずです。

wiki ページにはダウンロード可能なバイナリがあり、nmake と同じように jom を呼び出します。

于 2012-04-06T00:14:37.273 に答える
4

これが私がしたことです

1)「プロジェクトとソリューション」->「ビルドと実行」の下よりも「ツール」->「オプション」に移動します。コアの数がありました。最初はこれだけでいいと思ったけどそうでもない

2) プロジェクトを右クリックし、プロパティを選択します。「構成プロパティ」->「C/C++」->「コマンド ライン」の下に/MP4、4 はコアの数を入力します。フラグに互換性がないという警告が表示されるので、別のステップがあります

3) 「構成プロパティ」->「C/C++」->「コード生成」の下に「最小限の再構築を有効にする」があります。いいえに変更します。

再構築すると、タスク マネージャーに複数の CL プロセスが表示されます。

于 2012-04-11T07:40:19.783 に答える