2016-09-23 5 views
1

私はWindowsとQt CreatorとCMakeを使用しています。並列コンパイルのためにQT Cmakeプロジェクト用のジェネレータを設定する方法はありますか?

Qtが使用するデフォルトジェネレータ、nmake Makefilesを使用してプロジェクトをビルドすることができました。残念ながら、ビルドは1つのコアしか使用しません。生成されたmakefileを見ると、$ MAKEFLAGSという変数がありますが、それを変更する方法はわかりません。私は、Qt Creatorのビルド設定の下でcmakeコマンドに-DMAKEFLAGS = -jを追加しようとしましたが、CMakeはそれを理解しません。

私が理解できないもう1つの側面は、Qt CMakeビルドディレクトリに行き、同じコマンドを実行できないということです。コマンドQt Creatorが使用していることを教えてください:

cmake.exe --build。 --targetすべて

が、私はCMDウィンドウ内でこれを実行するとき、NMAKEを見つけることができない私に教えているようだ:

C:プロジェクト\ Gitは\ \ - AO3D-Desktop_Qt_5_7_0_MSVC2015_64bit-デフォルトの構築> cmakeの - -build。 --target all 指定されたファイルが見つかりません CMakeエラー:ジェネレータ:makeの実行に失敗しました。 "nmake" "/ NOLOGO" "all"

nmakeを見つけるためにファイルシステムを検索しましたが見つかりませんでしたが、Qt Creatorはこの同じビルドコマンドをこの同じフォルダで実行できます。

まとめ:複数のコアを使用するにはどうすればよいですか?私にはより良い発電機がありますか? Qtがコマンドラインで使用しているビルドコマンドを使用してビルドできないのはなぜですか?

+1

QTクリエーターのインストールディレクトリに存在する必要があります。確認しましたか? – PnotNP

+2

nmakeはQtの一部ではなく、MSVC/Visual Studioの一部です。 VS2015コマンドプロンプトまたはソースvcvarsall.batからビルドします。あなたが呼びたいものはjom.exeですが、それは作成者が付属しており、パラレルビルドを行うnmakeのドロップイン置換です。また、忍者を見てください。 –

+0

ありがとう - 私は間違いなくjom nmakeに切り替えることを目標にしています。 –

答えて

1

NMakeは単純に並列ジョブをサポートしていません。 jomとそれぞれのCMakeジェネレータを使用してください。

+0

これを答えとして受け入れます。もう一つの小さな問題は、nmakeの場所が私の質問のコメント欄に答えられたということです。 –

関連する問題