Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: fdn от Ноябрь 29, 2010, 06:56



Название: Сборка Qt в 2 потока?
Отправлено: fdn от Ноябрь 29, 2010, 06:56
Привет всем!

Можно ли собирать Qt в два потока на MSVC? А то уж больно долго собирается, особенно webkit.

Boost к примеру умеет собираться в два потока.


Название: Re: Сборка Qt в 2 потока?
Отправлено: pethead от Ноябрь 29, 2010, 07:13
а зачем его собирать много раз?
можно вообще взять уже собранный.

а для проекта precompiled header и ключ /MT для компилера.


Название: Re: Сборка Qt в 2 потока?
Отправлено: Пантер от Ноябрь 29, 2010, 08:25
Можно. Разрешаю.


Название: Re: Сборка Qt в 2 потока?
Отправлено: fdn от Ноябрь 29, 2010, 08:28
Можно. Разрешаю.

Иногда лучше жевать, чем говорить.


Название: Re: Сборка Qt в 2 потока?
Отправлено: fdn от Ноябрь 29, 2010, 08:29
а зачем его собирать много раз?
можно вообще взять уже собранный.

а для проекта precompiled header и ключ /MT для компилера.

А по существу есть что сказать?

Глупо, имея 2-4х ядерный комп, собирать на одном ядре 4 часа.


Название: Re: Сборка Qt в 2 потока?
Отправлено: Пантер от Ноябрь 29, 2010, 08:30
http://www.google.ru/search?sourceid=chrome&ie=UTF-8&q=nmake+%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE+%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%B2 (http://www.google.ru/search?sourceid=chrome&ie=UTF-8&q=nmake+%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE+%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%B2)
По первой же ссылке есть ответ.


Название: Re: Сборка Qt в 2 потока?
Отправлено: fdn от Ноябрь 29, 2010, 08:55
http://www.google.ru/search?sourceid=chrome&ie=UTF-8&q=nmake+%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE+%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%B2 (http://www.google.ru/search?sourceid=chrome&ie=UTF-8&q=nmake+%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE+%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%B2)
По первой же ссылке есть ответ.

Посыпаю голову пеплом. Спасибо тебе!


Название: Re: Сборка Qt в 2 потока?
Отправлено: pastor от Ноябрь 29, 2010, 17:10
Заюзать JOM можно


Название: Re: Сборка Qt в 2 потока?
Отправлено: pethead от Ноябрь 29, 2010, 18:03
все таки зачем ее собирать? тем более несколько раз. :)


Название: Re: Сборка Qt в 2 потока?
Отправлено: AlekseyK от Ноябрь 29, 2010, 19:37
Честно говоря по приведенной ссылке так и не понял как собирать в несколько потоков в VS. А в QtCreator-e как?


Название: Re: Сборка Qt в 2 потока?
Отправлено: xokc от Ноябрь 29, 2010, 21:56
вместо nmake использовать jom


Название: Re: Сборка Qt в 2 потока?
Отправлено: Prm от Февраль 21, 2011, 21:17
На всякий случай, кто еще не знает. Компиляция проекта:

Код:
qmake
mingw32-make --jobs=N -f Makefile.Release

И, что еще более важное, сборка самой библиотеки Qt:

Код:
  configure ...
  mingw32-make MAKE="mingw32-make --jobs=N"


Название: Re: Сборка Qt в 2 потока?
Отправлено: Пантер от Февраль 21, 2011, 21:44
Проверял? У меня мингв в один поток компилит, сколько бы джобов не поставил.


Название: Re: Сборка Qt в 2 потока?
Отправлено: SABROG от Февраль 21, 2011, 23:17
Проверял? У меня мингв в один поток компилит, сколько бы джобов не поставил.
На MinGW не работает. Вернее работает только на make (не mingw32-make) для MSYS. Ну и в линуксе работает.

А кто-нибудь пробовал утилиту CPU Control, которую используют для игр, чтобы распределить нагрузку по ядрам?


Название: Re: Сборка Qt в 2 потока?
Отправлено: crackedmind от Февраль 22, 2011, 08:00
Используйте jom и ваши волосы будут мягкими и шелковистыми.


Название: Re: Сборка Qt в 2 потока?
Отправлено: navrocky от Февраль 22, 2011, 12:16
А кто-нибудь пробовал утилиту CPU Control, которую используют для игр, чтобы распределить нагрузку по ядрам?

Очень сомнительно что она поможет. Венда и так распределяет процессы между ядрами, другое дело что mingw не пытается запускать их параллельно.


Название: Re: Сборка Qt в 2 потока?
Отправлено: Prm от Февраль 24, 2011, 20:56
Проверял? У меня мингв в один поток компилит, сколько бы джобов не поставил.

Проверял, и не раз  :) Раньше тоже в один поток компилил, пока не стал ключ MAKE="..." использовать. При компиляции библиотеки выигрыш во времени огромный. Все проекты свои так компилирую. Буквально позавчера качнул свежий MinGW с gcc 4.5.2 и скомпилил Qt 4.7.1.



Название: Re: Сборка Qt в 2 потока?
Отправлено: SABROG от Февраль 26, 2011, 13:08
У меня теперь так работает, если в консоли прописать заранее:

Код:
set MAKEFLAGS=-j4

Раньше на MinGW не работало, видимо в новых версиях сделали.


Название: Re: Сборка Qt в 2 потока?
Отправлено: Пантер от Март 04, 2011, 14:31
Код:
set MAKEFLAGS=-j5
mingw32-make.exe %*
Висит 3 процесса mingw32-make.exe, но одновременно компилится только один файл. Прос загружен на 50% (2 ядра). Что-то не распараллеливается. Используется GNU Make 3.82