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