Как строить проекты параллельно с использованием Eclipse/CDT (не параллельная компиляция!)

У меня есть несколько проектов, которые все полагаются на базовую библиотеку. Теперь, когда я изменяю заголовочный файл в этой базовой библиотеке, мне приходится перестраивать все зависимые проекты. В настоящее время Eclipse/CDT создает один проект за другим. Как я могу построить все эти проекты параллельно?

Обратите внимание, что я уже использую параметр -j (параллельная компиляция) для каждого проекта. Но этого недостаточно, потому что:

  • есть действительно много доступных процессоров (для большинства проектов больше, чем исходных файлов) и
  • из-за параллельной компиляции ссылка занимает намного больше времени, чем компиляция и, насколько мне известно, не может использовать многопоточность.

Ответ 1

Я не думаю, что текущая версия Eclipse CDT может строить проекты параллельно, но вы можете добиться такого же эффекта, имея проект Eclipse CDT Makefile, который создает несколько двоичных файлов (библиотеки и исполняемые файлы).

Простым способом создания такого проекта является CMake с Генератор Eclipse CDT4 - Unix Makefiles. Затем, если вы укажете /usr/bin/make -j<n> как команду сборки, где n - количество параллельных заданий в Project Properties, оно будет строить ваши цели (не только исходные файлы) параллельно.

Ответ 2

Свойства проектa > С++ Build > Поведение > Включить параллельную сборку