Pull to refresh

Comments 20

Ну а если использовать компилятор от Microsoft, то поможет утилита jom.
Или добавление QMAKE_CXXFLAGS_RELEASE += -MP[число процессов] в .pro файл проекта и установление переменной окружения как я описал.
Или в свойствах VS проекта:
«Properties»=>«Configuration Properties»=>«C/C++»=>«Command Line»
И в поле «Additional options» дописать -MP[число процессов].
Вообще, у меня почему то при компиляции с помощью mingw отладочной версии и запуска из QtCreator-а — постоянно падает gdb. Никто не знает, чего не так?
У меня то же самое, на виртуалке в которой поставил все с нуля на чистую операционку работает хорошо. Путем разборок нашел что не работает на машине python, ошибка странная разобраться в чем дело не получилось.
Автор, спасибо большое за совет! Время действительно уменьшается в шесть раз на Core i7, только что проверил в своем проекте. Не сразу разобрался, что писать во вкладке Projects, если у кого-то подобная проблема, этот скриншот поможет.

Остаётся только добавить, что в Linux/MacOS достаточно только ключа -jX.
При установке QT SDK для MSVC параллельная компиляция работает из коробки.
а я вот при компиляции под MSVC использую jom. И в последующих сборках проекта тоже. Весьма помогает
А make берет из консоли опцию MAKEOPTS? Если берёт, то просто задать эту переменную глобально и всё.
Make берет MAKEFLAGS, можно задать ее как переменную окружения равную -j10, например.
Так проще один раз в переменные среды залезть и выставить этот флаг!
Все равно придется менять флаг -f Makefile.Debug на -f Makefile.Release
не совсем понял фразу
«по 10 минут отвлекаться каждый раз при добавлении какого-нибудь Q_OBJECT к проекту и его пересборке. » при добавлении к проекту нового класса пересобираются только исходники этого класса и те файлы куда его заинклюдили. Если при этом пересобирается весь проект целиком-тут ошибка конфигурации и надо ее исправить…

тоже неплохое ускорение компиляции достигается при использовании утилит типа ccache, она и для винды есть, только надо отключить precompile headers, а на линуксе-distcc, что запускает распределенную компиляцию…
Чтобы перегенерировались moc-файлы, которые создаются при наличии Q_OBJECT-макроса необходимо произвести полную пересборку. Досборка не помогает. В случае QtCreator.
Пересборку не обязательно — главное выполнить qmake, а после него — make. Тогда заработает.
Это стандартные этапы сборки для команды Собрать. После нее, к сожалению, не работает, если добавить Q_OBJECT. Приходится выбирать пересобрать. Речь идет о QtCreator.
Так и я с ним работаю. Обычно он по команде «Собрать» вызывает только make, если ты не трогал .pro или настройки проекта. Поэтому перед сборкой иногда приходится жать qmake. Я даже его на хоткей Ctrl+Q повесил.
Спасибо, попробуем.
Sign up to leave a comment.

Articles