¿Cómo utilizo todos los núcleos para nmake?


Acabo de recibir una nueva computadora de cuatro núcleos y noté que nmake solo está usando 1 proceso.

Solía usar make que tenía el switch-j4 para lanzar 4 procesos. ¿Cuál es el equivalente de nmake?

[editar] Basándome en la siguiente información, he podido añadir un comando a mi archivo de proyecto qmake:

QMAKE_CXXFLAGS + = / MP

Que efectivamente lo hizo por mí. Muchas gracias.

Author: Phil Hannent, 2009-03-02

7 answers

De acuerdo con MSDN, no existe tal opción para nmake.

Sin embargo, puede hacer que el compilador compile varios archivos en paralelo utilizando la opción /MP con el compilador de línea de comandos VC++ y pasando varios archivos al mismo tiempo:

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

Sin embargo, tenga en cuenta que la mayoría de los Makefiles no llaman al compilador de esta manera - generalmente invocan el compilador por separado para cada archivo fuente individual, lo que evitaría que la opción /MP haga algo útil.

 21
Author: Alnitak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-07 22:28:42

Otra forma genérica, no relacionada con el Qt, de decirle a nmake que use todos los núcleos es establecer la variable ambiental CL en /MP:

set CL=/MP
nmake

Utilizará todos los núcleos de la CPU.

 40
Author: Violet Giraffe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-22 07:24:12

QT tiene herramienta supuesta para esto http://qt.gitorious.org/qt-labs/jom

 33
Author: Tolik Odukha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-28 17:12:36

El CMake 2.8.1 RC1, en cuanto al momento de escribir esto está listo para probar, trae un nuevo generador para NMake que se llama NMAKE Makefiles JOM y genera NMake con configuraciones específicas para jom, que es la caída en el reemplazo de NMake. Por lo tanto, proporciona la construcción habilitada para multiprocesamiento usando NMake.

 7
Author: mloskot,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-02-13 02:05:39

Incredibuild afirma ser capaz de ejecutar compilaciones de nmake en varios núcleos / varias máquinas. No tengo experiencia en eso.

 6
Author: Martin Beckett,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-03-03 16:29:33
 3
Author: Marcin Gil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-03-02 11:21:33

Esto no funciona para makefiles normales, pero hay una configuración en Visual Studio 2005 que le permite compilar más de uno .archivo vcproj al mismo tiempo (siempre que uno no dependa del otro). Herramientas - > Opciones - > Proyectos y Soluciones - > Construir y Ejecutar - > X número máximo de compilaciones de proyectos paralelos.

 3
Author: teeks99,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-03-05 18:23:26