2009-08-07 3 views
5

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

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

+1

Что проблема в управлении вручную «сделать -j 5 "? – elcuco

+0

Проблема в том, что make получает вызов снова сам по себе из-за директивы в Makefile и отбрасывает все флаги. –

ответ

18

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

set MAKEFLAGS=-j4 
make 
2

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

qmake 
    make MAKE="mingw32-make -j4" 

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

3

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

набор MAKE_COMMAND = mingw32-делают -j% NUMBER_OF_PROCESSORS%

Смежные вопросы