valid precio kits full found descargar creator compiler qt qt-creator mingw32

precio - Cómo compilar en múltiples núcleos usando mingw dentro de QTCreator



qt kits download (7)

Tengo una CPU i7 de cuatro núcleos en mi escritorio de Windows. Estoy intentando hacer que mingw32-make compile usando tantos núcleos como sea posible. He agregado -j8 en los campos "Crear argumentos" en Configuraciones de compilación-> Pasos de compilación. mingw32-make parece ignorar por completo la opción ya que no obtengo ninguna mejora de velocidad de eso. Cuando veo el uso de CPU en el administrador de tareas, permanece en 13% y solo veo una instancia de g ++ en ejecución.

En este momento, reconstruir todo el proyecto usando mingw toma 3 minutos completos. Reconstruirlo usando MSVC toma solo 15 segundos.

Para su información, he habilitado la opción de encabezado precompilado en la configuración del proyecto. Eso hace las cosas mucho más rápidas con VC también. Pero aún no veo el beneficio del encabezado precompilado con mingw.

Comparta sus comentarios si alguna vez ha hecho que mingw compile varios archivos fuente en paralelo desde QTCreator. ¡Gracias!


-j es el camino a seguir, desafortunadamente para mí el proyecto es tan grande que utiliza toda mi memoria disponible y mi computadora se congela, así que tenlo en cuenta. Brendan dijo que no hay forma de usar solo la mitad de sus núcleos, por ejemplo, lo cual es una pena si es verdad.


Agregue -j9 (reemplace 9 al valor de NUMBER_OF_PROCESSORS (Windows) / $(nproc) (Linux) más uno - esto es óptimo) para todos

QString makefilein = " -f " + subtarget->makefile;

líneas en qmake / generators / makefile.cpp ( búscala tú mismo).

Resulta como

QString makefilein = " -j9 -f " + subtarget->makefile;

luego ejecute configure.exe con los parámetros adecuados (! y adicional -qmake -dont-process para evitar la generación de abundancia de -qmake -dont-process !).

El problema es que obtiene dos conjuntos de procesos durante la compilación "depurar y lanzar". Por lo tanto, el recuento total de procesos generados es mayor de 18 años.



En Qt Creator ve a Proyectos -> Construir y ejecutar -> tu configuración de compilación de MinGW específica -> Entorno de compilación (esto está en la pantalla debajo de Pasos generales / Compilar / Limpiar pasos ...) y luego agrega una variable MAKEFLAGS y MAKEFLAGS en -j8 . -j4 esto en mi máquina central con -j4 y QtCreator 4.4.1 y con MinGW 5.3.0. Al compilar mi procesador funciona al 100% de rendimiento como se puede ver en el Administrador de tareas. Sin esta opción, era de alrededor del 25%, así que supongo que funciona exactamente como se esperaba. La construcción ahora es mucho más rápida.


Esto es lo que hice.

En el menú Herramientas -> Opciones en Qt Creator, en la sección "Crear y ejecutar" hay una opción que dice "Usar jom en lugar de nmake". Revisé esa caja, pero nada cambió. Así que, en cambio, fui a la configuración de compilación del proyecto y en la categoría de pasos de compilación hay un ítem "Hacer". Expande los detalles sobre eso y encontrarás un elemento "Override mingw32-make.exe:". Pegué "C: / QtSDK / QtCreator / bin / jom.exe" allí, y de repente estaba construyendo con varios núcleos.

Trabajó para mí en Qt Creator 2.4.1. Darle una oportunidad.


Use la variable de entorno MAKE_COMMAND :

set MAKE_COMMAND=mingw32-make -j%NUMBER_OF_PROCESSORS%


-j8 probablemente no funciona debido a una limitación en GNU Make on Win32.

Intenta poner solo -j en el campo de argumentos de hacer. Eso le dice a Make que engendre tantos procesos de compilación como sea posible: si tiene suficiente RAM y CPU para manejar eso, debería ser más rápido que una sola compilación.

Desafortunadamente estas son las dos únicas opciones (sin modificar los Makefiles): ya sea -j1 o ilimitado -j

Detalles completos: GNU Make en Win32 no es compatible con el servidor de trabajos, por lo que un proceso de Make padre no puede rastrear el número de procesos de compilación generados por cualquier sub-Make. Para estar seguro, el sub-Make solo se ejecuta con -j1 . Creo que los Makefiles generados de qmake / Qt Creator usan múltiples capas de Makefiles. Primero resolví este problema con MPLAB X IDE de Microchip, revisa este hilo para más información

Esta cita es de README.W32 distribuido con GNU Make

Soporte para construcciones paralelas

Las compilaciones en paralelo (-jN) son compatibles con este puerto, con 2 limitaciones:

  • El número de procesos concurrentes tiene un límite de 64, debido a la forma en que este puerto implementa la espera de sus subprocesos;

  • El método del servidor de trabajos (disponible cuando Make se ejecuta en plataformas Posix) no es compatible, lo que significa que debe pasar un modificador explícito -jN a sub-Make en un Makefile recursivo. Si una submatriz no recibe un conmutador -jN explícito, se pondrá por defecto a -j1, es decir, sin paralelismo en submatrimonios.