GNU make --jobs опция в QMAKE - PullRequest
5 голосов
/ 08 августа 2009

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

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

Ответы [ 3 ]

18 голосов
/ 08 августа 2009

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

set MAKEFLAGS=-j4
make
3 голосов
/ 18 февраля 2010

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

set MAKE_COMMAND = mingw32-make -j% NUMBER_OF_PROCESSORS%

2 голосов
/ 08 августа 2009

Универсальный Makefile использует $(MAKE) при вызове make, поэтому вы можете перезаписать его, используя переменные окружения. Примерно так должно это сделать:

  qmake
  make MAKE="mingw32-make -j4"

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

...