Come utilizzo tutti i core per nmake?
Domanda
Ho appena ricevuto un nuovo computer quad core e ho notato che nmake sta usando solo 1 processo.
Usavo make che aveva lo switch -j4 per l'avvio di 4 processi. Qual è l'equivalente di nmake?
[modifica] Sulla base delle informazioni seguenti sono stato in grado di aggiungere un comando al mio file di progetto qmake:
QMAKE_CXXFLAGS + = / MP
Il che è stato efficace per me. Mille grazie.
Soluzione
Secondo MSDN , non c'è tale opzione per nmake
.
Puoi comunque fare in modo che il compilatore costruisca più file in parallelo usando l'opzione / MP
con il compilatore della riga di comando VC ++ e passando più file contemporaneamente:
> cl /MP a.cpp b.cpp c.cpp
Tuttavia nota che la maggior parte dei Makefile non chiama il compilatore in questo modo - di solito invoca il compilatore separato per ogni singolo file sorgente, il che impedirebbe all'opzione / MP
di fare qualcosa di utile.
Altri suggerimenti
Un altro modo generico e non correlato a Qt per dire a nmake
di usare tutti i core è di impostare la variabile ambientale CL
su / MP
:
set CL=/MP
nmake
utilizzerà tutti i core della CPU.
QT ha lo strumento previsto per questo http://qt.gitorious.org/qt-labs/jom
Il CMake 2.8.1 RC1 , come per il tempo di scrivere questo è pronto per provare, porta un nuovo generatore per NMake che si chiama NMake Makefiles JOM e genera NMake con impostazioni specifiche per jom, che è il calo in sostituzione di NMake. Pertanto, offre la costruzione multi-elaborazione abilitata utilizzando NMake.
Incredibuild afferma di essere in grado di eseguire build nmake su più core / macchine multiple. Non ne ho esperienza.
Il googling rapido fornisce: http://msdn.microsoft.com/en -us / library / bb385193.aspx
Questo non funziona con i normali makefile, ma in Visual Studio 2005 esiste un'impostazione che ti consente di creare più di un file .vcproj contemporaneamente (a condizione che uno non dipenda dall'altro). Strumenti - > Opzioni - > Progetti e soluzioni - > Costruisci ed esegui - > X numero massimo di build di progetti paralleli.