Pregunta

Estoy utilizando qmake para generar MinGW32 Makefile para una pequeña aplicación Qt C ++ estamos desarrollando. Mi problema: todas esas dos CPU / cuádruple núcleo están sentados sin hacer nada, mientras que sólo un hilo está haciendo el edificio. Con el fin de paralelizar las cosas que pasan He intentado --jobs 4 para hacer, pero el problema es que qmake genera un makefile genérica dentro de la cual hacen obtiene la llamada de nuevo con -f.

¿Es posible forzar qmake añadir opciones para hacer al generar el makefile? O tal vez hay otra manera de establecer la opción fuera de qmake en total? No puedo editar el Makefile específico que ya se genera automáticamente cada generación.

¿Fue útil?

Solución

El abuso de $MAKE para pasar opciones no funciona en todos los casos. A menudo, (por ejemplo, en el script de configuración de Qt en Unix), que está entre comillas dobles ("$MAKE") para permitir que el comando para contener espacios. Lo sé porque he usado el mismo truco antes de que dejó de funcionar. Qt Soporte sugirió entonces (con razón) a utilizar $MAKEFLAGS como en

set MAKEFLAGS=-j4
make

Otros consejos

Esto funciona para mí:

set MAKE_COMMAND = mingw32-hacer -j% NUMBER_OF_PROCESSORS%

El Makefile genérico utiliza $(MAKE) al invocar hacer, por lo que puede sobrescribir el uso de variables de entorno. Algo así debe hacerlo:

  qmake
  make MAKE="mingw32-make -j4"

Reemplazar los valores de MAKE como se requiere por supuesto:)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top