c++ eclipse qt multicore nmake

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



eclipse qt (7)

Acabo de comprar una nueva computadora quad core y noté que nmake solo usa 1 proceso.

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

[edit] Basado en la información a continuación, he podido agregar un comando a mi archivo de proyecto qmake:

QMAKE_CXXFLAGS + = / MP

Lo cual efectivamente lo hizo por mí. Muchas gracias.


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 reemplazo de NMake. Por lo tanto, ofrece una construcción habilitada para multiprocesamiento utilizando NMake.


Esto no funciona para los archivos make normales, pero hay una configuración en Visual Studio 2005 que le permite crear más de un archivo .vcproj al mismo tiempo (siempre que uno no dependa del otro). Herramientas -> Opciones -> Proyectos y soluciones -> Compilar y ejecutar -> X cantidad máxima de compilaciones de proyectos paralelas.



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

set CL=/MP nmake

usará todos los núcleos de la CPU.



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


Según MSDN , no existe esa opción para nmake .

Sin embargo, puede hacer que el compilador cree varios archivos en paralelo utilizando la opción /MP con el compilador de línea de comandos de 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: normalmente invocan el compilador por separado para cada archivo fuente individual, lo que evitaría que la opción /MP hiciera algo útil.