Eclipse CDT build / run на файловой основе - PullRequest
8 голосов
/ 20 марта 2011

В моем сценарии у меня есть проект C ++ в CDT Eclipse.Однако эти проекты скорее представляют собой набор отдельных (вспомогательных) программ, а не одно сложное приложение.Следовательно, я хочу иметь возможность создавать и запускать их индивидуально.

Моя структура проекта очень проста и выглядит следующим образом:

src/app1.cpp
src/app2.cpp
src/...

Обратите внимание, что у меня нет общих заголовочных файлов или библиотек.Однако я хочу иметь возможность добавлять программы в этот проект, просто создав, например, src / appx.cpp

В идеале я хочу иметь ярлыки для

  • "Сборка в настоящий момент открыта .cpp"
  • «Запустить бинарный файл для открытого в настоящий момент .cpp»

Есть ли какие-либо предложения о том, как добиться этого поведения, если это возможно без дополнительных плагинов?

1 Ответ

5 голосов
/ 20 марта 2011

Простой способ добиться цели, к которой вы стремитесь, - создать проект Makefile с CDT и добавить новое целевое правило для каждого из ваших приложений в вашем Makefile . Вы даже можете использовать SCons или другие системы сборки с проектом CDT Makefile и получить тот же эффект.

Вы также можете обмануть управляемую сборку для создания исполняемых файлов вместо объектных файлов. Удалите параметр -c из Другие флаги настроек компилятора C ++ в свойствах проекта. Это создаст отдельный файл приложения для каждого из ваших исходных файлов.

Файлы приложений, созданные в каталоге сборки, будут иметь расширение объектного файла и не будут исполняемыми. Чтобы решить эту проблему, вы можете добавить скрипт пост-сборки в каталог вашего проекта, например:

postbuild.sh для Linux:

 chmod +x *.o
 rename -v 's/\.o$//' *.o

или postbuild.bat для Windows:

rename *.o *.exe

После добавления ../postbuild.sh или ../postbuild.bat в качестве команды после сборки в настройках сборки ваши приложения будут готовы к запуску. Щелкните правой кнопкой мыши по любому из этих исполняемых файлов и выберите Debug As или Run As, и будет создана новая конфигурация запуска.

Также вам нужно будет остановить компоновщик управляемой сборки, чтобы избежать ошибок. Этого можно достичь, изменив команду компоновщика на true (Linux) или true.exe (Windows, msys).

...