2009-08-07 18 views
5

Używam qmake do generowania Makefiles MinGW32 dla małej aplikacji Qt C++, którą rozwijamy. Mój problem: wszystkie te dwurdzeniowe/czterordzeniowe procesory siedzą bezczynnie, podczas gdy tylko jeden wątek wykonuje budynek. W celu zrównoleglenia rzeczy próbowałem przekazać - do 4, ale problem polega na tym, że qmake generuje ogólny plik makefile, w którym make zostaje wywołany ponownie za pomocą -f.Opcja GNU make - zrób w QMAKE

Czy można wymusić qmake, aby dodać opcje do zrobienia podczas generowania pliku Makefile? A może jest inny sposób na ustawienie opcji poza qmake w ogóle? Nie mogę edytować tego konkretnego Makefile, ponieważ jest to autogeneracja każdej kompilacji.

+1

co jest problemem w prowadzeniu ręcznie „dokonać -j 5 "? – elcuco

+0

Problem polega na tym, że make zostaje wywołany samoczynnie z powodu dyrektywy w Makefile i zrzuca wszystkie flagi. –

Odpowiedz

18

nadużywa $MAKE przekazać opcje nie działa we wszystkich przypadkach. Często (np. W skrypcie konfiguracyjnym Qt w systemie Unix) jest on zawarty w podwójnych cudzysłowach ("$MAKE"), aby zezwolić na umieszczanie w nim spacji. Wiem, bo użyłem tej samej sztuczki, zanim przestało działać. Qt Pomoc następnie zasugerował (słusznie) do korzystania $MAKEFLAGS jak w

set MAKEFLAGS=-j4 
make 
2

Generyczny Makefile używa $(MAKE) podczas wywoływania make, więc możesz go zastąpić przy użyciu zmiennych środowiskowych. Coś jak to powinno zrobić:

qmake 
    make MAKE="mingw32-make -j4" 

Wymień wartości MAKE jak wymaga oczywiście :)

3

Działa to dla mnie:

zestaw MAKE_COMMAND = mingw32-make -j% NUMBER_OF_PROCESSORS%

Powiązane problemy