Управление сборкой в ​​C ++ и хорошие IDE в Linux - PullRequest
3 голосов
/ 15 ноября 2009

Я начинаю писать умеренный по размеру проект на C ++, требующий довольно большого количества файлов и зависимостей от других проектов.

Считаете ли вы, что ведение Makefile для этого проекта вручную - лучший подход?

Существуют ли другие лучшие альтернативы для C ++, которые делают управление сборкой и управление зависимостями файлов действительно простым в обращении?

Кроме того, какая IDE хороша для разработки C ++ под Linux? Мне удобно с Vim, но вы думаете, что есть хорошие IDE для C ++ (например, Eclipse для Java), которые обеспечивают завершение кода и т. Д.

Спасибо! Аджай

Ответы [ 8 ]

5 голосов
/ 16 ноября 2009

Другие уже рекомендовали использовать CMake. На мой взгляд, вы должны управлять своим проектом с помощью CMake, а затем выбрать свою любимую среду IDE.

CMake позволяет вам описывать проект, который будет построен, а не как его строить. Например: я хочу создать общую библиотеку с именем foo с исходными файлами a.cpp, b.cpp и c.h, и для этого требуются зависимости ссылок. Затем в Unix вы получаете libfoo.so, а в Windows вы получаете foo.dll и foo.lib. Все общие настройки проекта могут быть абстрагированы до более высоких уровней в дереве сборки, что делает большинство файлов очень простыми. Более сложные требования могут быть преобразованы в макросы.

Как только ваш проект будет описан так, CMake сгенерирует make-файлы и / или проекты IDE. Это означает, что каждый разработчик может выбрать собственную IDE, а также разрешить вам назначать IDE, если это необходимо.

Моя компания использует CMake для создания C ++ в нашем продукте для Windows и Solaris. Он содержит 600 проектов и 1,5 миллиона строк исходного кода. Изначально мы выбрали его в качестве утилиты для кросс-платформенной сборки при переносе на Solaris, однако для такого большого проекта, как наш, управлять сборкой с помощью CMake намного проще, чем с файлами проектов Visual Studio. Я бы порекомендовал его в качестве утилиты сборки для любого проекта c ++ любого размера

Мы используем затмение cdt на солярисе и очень довольны им. Большая часть нашей разработки с визуальной студией на окнах. cmake также хорошо работает с другими устройствами, которые я использую с KDeveloper4 на Linux дома без проблем.

4 голосов
/ 15 ноября 2009

KDevelop4 (из subversion или rc1 с их сайта) + CMake делает жизнь намного проще, automake должен просто умереть. Если вам нужно кроссплатформенное решение, netbeans + плагин c ++ довольно приличный, хотя и не так хорош, как kdevelop4.

2 голосов
/ 16 ноября 2009

Мне очень нравится CMake для всего процесса сборки (но у меня почти нет опыта работы с scons или Jam).

Я использую vim или qtcreator. Qtcreator все еще находится в разработке, но я думаю, что это очень многообещающе.

2 голосов
/ 16 ноября 2009

Я предлагаю вам Код :: Блоки. Я использую его в Debian и работает изящно.

http://www.codeblocks.org/

Редактировать: добавлена ​​еще одна ссылка http://wiki.codeblocks.org/index.php?title=The_build_process_of_Code::Blocks

1 голос
/ 16 ноября 2009

Ручное ведение Makefile в больших проектах становится довольно болезненным. Если вы начнете использовать automake / autoconf, вы - через некоторое время изучения всех аспектов - оцените мощные возможности, которые могут предложить эти инструменты.

А в качестве IDE просто используйте Emacs. Это быстрый, мощный и поддерживает завершение кода и т. Д.

1 голос
/ 15 ноября 2009

Eclipse также делает C ++ - через Eclipse CDT - не такой всеобъемлющий, как Java, но довольно хорошо.

0 голосов
/ 16 ноября 2009

Я обнаружил, что Emacs + Scons работают очень хорошо для меня.

0 голосов
/ 16 ноября 2009

Существует также Code :: Blocks как IDE со своей собственной системой сборки. Но я бы посоветовал вам опробовать другие инструменты сборки (CMake, Boost.Build, SCons), если вы хотите иметь возможность собирать свое программное обеспечение "где угодно", не установив причудливую среду разработки. ; -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...