Подтвердить что ты не робот

Как сделать параллельную сборку в Visual Studio 2010?

Как я могу заставить VS 2010 запускать более одного процесса компиляции на С++ за раз? Я имею в виду модули объектов здания параллельно; Мне не интересно создавать несколько проектов за один раз (я знаю об инструментах > Параметры > Строить и запускать < Максимальное количество параллельных проектов, но это не делает то, что я хочу).

В принципе, я ищу эквивалент Visual Studio "make -jN".

4b9b3361

Ответ 1

  • Инструменты → Параметры
  • Проекты и решения\Настройки проекта VС++
  • Максимальные параллельные компиляции С++

Кроме того, как сказал Росс Смит в комментариях, вам также нужно включить опцию "Многопроцессорная компиляция" в проекте:

  • Свойства проекта
  • Свойства конфигурации > C/С++ > Общие
  • Многопроцессорная компиляция
  • Profit!

Ответ 2

Комментарий Necrolis кажется правильным решением.

/MP (сборка с несколькими процессами)

Параметр/MP заставляет компилятор создавать одну или несколько копий самостоятельно, каждый в отдельном процессе. Эти копии одновременно скомпилируйте исходные файлы. Следовательно, общее время для создания исходные файлы могут быть значительно уменьшены.

Обратите внимание, что вы можете установить его на уровне проекта (и, следовательно, он будет применяться ко всем файлам в нем), а также к отдельным файлам, полезным, например, если вам нужно использовать #import.

В частности, /MP обычно несовместим с прекомпилированными заголовками или источниками, использующими #import; в этом случае вы можете установить флаг /MP в проекте, а затем очистить его от отдельных файлов (обычно, stdafx.cpp и любого файла с помощью #import).

Ответ 3

Есть два переключателя, которые необходимо установить для создания VS-сборки с использованием многопоточности (оба предназначены для конкретного проекта):

  • свойства проекта → C/С++ → Общие → Многопроцессорная компиляция установлена ​​в: Да (/MP)
  • свойства проекта- > C/С++ → Генерация кода → Включить минимальную перестройку, установленную в: Нет (/Gm -)

Проверьте также свои инструменты- > Параметры- > Проекты и решения- > Настройки проекта VС++ → Максимальные параллельные настройки компиляции С++. Значение по умолчанию равно 0, что позволяет VS использовать как можно больше компиляций concurret.

Ответ 4

jom - инструмент, который вы ищете.

Из wiki: http://qt-project.org/wiki/jom

jom - это клон nmake для поддержки выполнения нескольких независимые команды параллельно. Он в основном добавляет команду -j линейный переключатель, аналогичный GNU make.

В то время как большая часть документации нацелена на разработчиков Qt, которые пытаются ускорить создание библиотеки Qt на окнах, jom должен отлично работать в проектах без Qt, если у вас есть makefile, совместимый с nmake.

Страница wiki имеет двоичные файлы, которые вы можете скачать, и вы вызываете jom, как вы бы nmake.

Ответ 5

Вот что я сделал

1) Перейдите в Инструменты- > Параметры, чем в разделе "Проект и решения" → "Сборка и запуск" для меня было количество ядер. Хотя сначала я думал, что это все, что мне нужно, но это не

2) Щелкните правой кнопкой мыши свой проект и выберите свойства. В разделе "Свойства конфигурации" → "C/С++" → "Командная строка" введите /MP4, где 4 - количество ядер, которые у вас есть. Вы получите предупреждение о том, что флаги не совместимы, поэтому у нас есть еще один шаг

3) Перейдите в раздел "Свойства конфигурации" → "C/С++" → "Генерация кода" есть "Включить минимальную перестройку". Измените это на.

Восстановить, и вы должны увидеть несколько процессов CL в своем диспетчере задач.

Ответ 6

Я вижу! Ваше требование заключается в создании единого проекта в параллельных потоках.

Я нахожу плагин для компилятора Shark очень полезен