nmakeのすべてのコアを利用するにはどうすればよいですか?
質問
新しいクアッドコアコンピューターを入手したところ、nmakeが1つのプロセスしか使用していないことに気付きました。
以前は、4つのプロセスを起動するためにスイッチ-j4を備えたmakeを使用していました。 nmakeと同等のものは何ですか?
[編集] 以下の情報に基づいて、qmakeプロジェクトファイルにコマンドを追加できました。
QMAKE_CXXFLAGS + = / MP
私にとって効果的に行ったのはどれですか。どうもありがとう。
解決
MSDN によると、 nmake
のこのようなオプション。
ただし、VC ++コマンドラインコンパイラで / MP
オプションを使用し、複数のファイルを同時に渡すことで、コンパイラで複数のファイルを並行してビルドできます。
> cl /MP a.cpp b.cpp c.cpp
ただし、ほとんどのMakefileはこのようにコンパイラを呼び出さないことに注意してください。通常は、個々のソースファイルごとに別々にコンパイラを呼び出します。これにより、 / MP
オプションが有用な処理を行えなくなります。
他のヒント
すべてのコアを使用するように nmake
に指示する別の一般的な非Qt関連の方法は、環境変数 CL
を / MP
に設定することです:
set CL=/MP
nmake
すべてのCPUコアを使用します。
QTにはこのためのツールがあります http://qt.gitorious.org/qt-labs/jom
CMake 2.8.1 RC1 は、これを書いている時点で試してみる準備はできていますが、 NMake Makefiles JOM を実行すると、jomの特定の設定でNMakeが生成されます。これは、NMakeの置き換えのドロップです。したがって、NMakeを使用してマルチプロセス対応のビルドを提供します。
Incredibuild は、複数のコア/複数のマシンでnmakeビルドを実行できると主張しています。経験はありません。
これは通常のメイクファイルでは機能しませんが、Visual Studio 2005には複数の.vcprojファイルを同時にビルドできる設定があります(一方が他方に依存していない場合)。ツール->オプション->プロジェクトとソリューション->ビルドと実行-> X 並列プロジェクトビルドの最大数。