Параметр GNU make --jobs в QMAKE

Я использую qmake для создания файлов Makefile MinGW32 для небольшого приложения Qt C++, которое мы разрабатываем. Моя проблема: все эти двухъядерные/четырехъядерные процессоры бездействуют, в то время как только один поток выполняет сборку. Чтобы распараллелить вещи, я попытался передать --jobs 4 для make, но проблема в том, что qmake генерирует общий make-файл, внутри которого make снова вызывается с -f .

Можно ли заставить qmake добавлять параметры make при создании make-файла? Или, может быть, есть другой способ установить параметр вне qmake? Я не могу редактировать этот конкретный Makefile, так как он автоматически генерируется при каждой сборке.


person Saulius Žemaitaitis    schedule 07.08.2009    source источник
comment
в чем проблема вручную запустить make -j 5?   -  person elcuco    schedule 28.09.2009
comment
Проблема в том, что make снова вызывается сама по себе из-за директивы в Makefile и сбрасывает все флаги.   -  person Saulius Žemaitaitis    schedule 28.09.2009


Ответы (3)


Злоупотребление $MAKE для передачи параметров работает не во всех случаях. Часто (например, в скрипте configure Qt для Unix) он заключен в двойные кавычки ("$MAKE"), чтобы команда могла содержать пробелы. Я знаю, потому что я использовал тот же трюк, прежде чем он перестал работать. Затем поддержка Qt предложила (справедливо) использовать $MAKEFLAGS как в

set MAKEFLAGS=-j4
make
person Marc Mutz - mmutz    schedule 08.08.2009

Это работает для меня:

установить MAKE_COMMAND = mingw32-make -j% NUMBER_OF_PROCESSORS%

person GED    schedule 18.02.2010

Общий Makefile использует $(MAKE) при вызове make, поэтому вы можете перезаписать его, используя переменные среды. Что-то вроде этого должно сделать это:

  qmake
  make MAKE="mingw32-make -j4"

Замените значения MAKE по мере необходимости, конечно :)

person bluebrother    schedule 07.08.2009