К сожалению, я обнаружил, что вкладка C/C++ Build не позволяет вам устанавливать местоположение сборки, если вы не создаете свой собственный make-файл.
Вы вероятно обнаружили, что Builder Настройки вкладка под Project Properties> C/C++ Сборка все неактивна в проект по умолчанию C/C++. Это связано с тем, что CDT по умолчанию назначает внутренний строитель для новых проектов. Чтобы изменить это, вы можете перейти к Свойства проекта> C/C++ Build> Редактор цепочки инструментов и изменить Текущий строитель по Gnu Make Builder. Затем перейдите к Свойства проекта> C/C++ Build и измените Строитель Тип по Внешний строитель. Теперь вы можете выбрать свой собственный make-файл для проекта, если хотите; хотя я бы рекомендовал оставить CDT для автоматического создания файла makefile.
У меня одинаковые требования к проекту вывода в/project_path/bin (хотя я все еще поддерживаю разделение между сборками Debug и Release). Для этого я выполняю операцию копирования на выходе как шаг после сборки.
Чтобы сделать это, перейдите к Project Properties> C/C++ Построить> Настройки и выберите Построить шаги вкладку. В шагов после сборки под Command: введите:
cp ${BuildArtifactFilePrefix}${BuildArtifactFileName} "/path/to/bin/directory/";
Очевидно заменяя "/ путь/к/бен/каталог /" по мере необходимости.
Я лично предпочитаю хранить файлы проекта в рабочем пространстве /build; копирование двоичных файлов в рабочее пространство/bin каталог и библиотеки в Рабочая область/lib. Сначала я обнаружил, что это обходное решение для копирования является неудобством, но постигло его, потому что оно изолирует межстрочные файлы сборки из финальной бинарной/библиотеки.
Для двоичных файлов, я хотел бы использовать:
cp ${BuildArtifactFilePrefix}${BuildArtifactFileName} "${WorkspaceDirPath}/bin/";
Для библиотек, я хотел бы использовать:
cp ${BuildArtifactFilePrefix}${BuildArtifactFileName} "${WorkspaceDirPath}/lib/";
я включаю переменную "$ {BuildArtifactFilePrefix}", потому что CDT включает в себя "Lib" в качестве префикс по умолчанию для статических библиотек, который я предпочитаю.
Вам нужно только убедиться, что целевой каталог существует до сборки; Eclipse/CDT не создаст для вас каталог.
Кроме того, помните, что эти копии будут оставлены в /бен или /Lib каталога на чистом, но перезаписаны на любом последующем восстановлении.
Отличное решение, спасибо –
Существует опция для этапа после сборки, поэтому проще всего создать его там, где он есть, и если это работает, используйте шаг после сборки, чтобы скопировать/переместить/связать его. Есть ли специальный макрос для Debug или Release, поэтому я могу использовать общий для обеих конфигураций? – CashCow