Опция GNU make --jobs в QMAKE
Вопрос
Я использую qmake для генерации Make-файлов MinGW32 для небольшого приложения на Qt C ++, которое мы разрабатываем.Моя проблема:все эти двух- / четырехъядерные процессоры простаивают там без дела, в то время как сборкой занимается только один поток.Чтобы распараллелить вещи, я попытался передать --jobs 4 в make, но проблема в том, что qmake генерирует общий makefile, внутри которого make снова вызывается с помощью -f .
Можно ли заставить qmake добавлять параметры в make при генерации makefile?Или, может быть, есть другой способ установить опцию вообще за пределами qmake?Я не могу отредактировать этот конкретный Makefile, поскольку он автоматически генерируется при каждой сборке.
Решение
Злоупотребляющий $MAKE
передача параметров работает не во всех случаях.Часто, (напримерв скрипте настройки Qt в Unix), он заключен в двойные кавычки ("$MAKE"
), чтобы разрешить команде содержать пробелы.Я знаю, потому что я использовал тот же трюк до того, как он перестал работать.Затем служба поддержки Qt предложила (по праву) использовать $MAKEFLAGS
как в
set MAKEFLAGS=-j4
make
Другие советы
Это работает для меня:
установить MAKE_COMMAND=mingw32-make -j%КОЛИЧЕСТВО_ПРОЦЕССОРОВ%
Универсальный Makefile использует $(MAKE)
при вызове make, чтобы вы могли перезаписать его с помощью переменных окружения.Что-то вроде этого должно это сделать:
qmake
make MAKE="mingw32-make -j4"
Замените значения MAKE
по мере необходимости, конечно :)