web-dev-qa-db-ja.com

nmakeのすべてのコアをどのように利用しますか?

新しいクアッドコアコンピューターを手に入れましたが、nmakeは1つのプロセスしか使用していません。

私は、4つのプロセスを起動するためにスイッチ-j4が付いたmakeを使用していました。 nmakeに相当するものは何ですか?

[編集]以下の情報に基づいて、qmakeプロジェクトファイルにコマンドを追加できました。

QMAKE_CXXFLAGS + =/MP

どちらが効果的でしたか。どうもありがとう。

43
Phil Hannent

[〜#〜] msdn [〜#〜] によると、nmakeにはそのようなオプションはありません。

ただし、VC++コマンドラインコンパイラで/MPオプションを使用し、複数のファイルを同時に渡すことで、コンパイラに複数のファイルを並行してビルドさせることができます。

> cl /MP a.cpp b.cpp c.cpp

ただし、ほとんどのMakefileはこのようにコンパイラを呼び出さないことに注意してください。通常、ソースファイルごとに個別にコンパイラを呼び出します。これにより、/MPオプションが有用な処理を実行できなくなります。

21
Alnitak

nmakeにすべてのコアを使用するように指示する、Qtに関連しないもう1つの一般的な方法は、環境変数CL/MPに設定することです。

set CL=/MP
nmake

すべてのCPUコアを使用します。

44
Violet Giraffe

QTにはこのためのツールが想定されています http://qt.gitorious.org/qt-labs/jom

34
Tolik Odukha

CMake 2.8.1 RC1 、これを書いている時点では、試す準備ができています NMake Makefiles JOM と呼ばれるNMakeの新しいジェネレーターをもたらし、それでNMakeを生成しますjomの特定の設定。これは、NMakeの置き換えのドロップです。したがって、NMakeを使用してマルチプロセッシング対応のビルドを提供します。

7
mloskot

Incredibuild 複数のコア/複数のマシンでnmakeビルドを実行できると主張しています。経験はありません。

6
Martin Beckett

クイックグーグルで次のようになります: http://msdn.Microsoft.com/en-us/library/bb385193.aspx

4
Marcin Gil

これは通常のメイクファイルでは機能しませんが、同時に複数の.vcprojファイルを作成できる設定がVisual Studio 2005にあります(一方が他方に依存していない場合)。ツール->オプション->プロジェクトとソリューション->ビルドと実行-> [〜#〜] x [〜#〜]並列プロジェクトビルドの最大数。

3
teeks99