Вопрос

Я использую 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 по мере необходимости, конечно :)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top