2008-08-19 2 views
50

Я разрабатываю приложения на C++ в среде Linux. Инструменты, которые я использую каждый день, включают Eclipse с плагином CDT, gdb и valgrind.
Какие инструменты используют другие люди? Есть ли что-то там для Linux, что соперничает с гладкостью Microsoft Visual Studio?Какие инструменты вы используете для разработки приложений на C++ в Linux?

+0

Не могли бы вы объяснить, что вы подразумеваете под * slickness *? Вы хотите власти и универсальности? Скорость и эффективность? Или вы больше работаете с кнопками и меню с графическим интерфейсом с ручным управлением позади меня? (Не то, чтобы * I * когда-либо возлагал вину на IDE за то, что я запретил делать то, что, как я знаю, безопасен.) – NVRAM 2009-12-23 20:54:04

+20

Позор мне как чистому разработчику UNIX, но я должен признаться, что Microsoft Visual Studio является одной из лучших доступных IDE для разработки на C++. – 2009-12-23 21:57:09

+0

@Clayton: этот вопрос может быть проблематичным.Как вы решите, какой ответ принять, например? какой из них правильный"? – 2009-12-24 08:02:37

ответ

5

г ++ и сделать

+2

И вы делаете свое редактирование с помощью «кошки», я полагаю? – Arafangion 2009-04-20 03:27:46

+7

Нет, я использую подключение удаленного рабочего стола к компьютеру с Windows и использую eclipse для написания кода, а затем скопируйте его в g ++ – andrewrk 2009-04-23 00:23:39

+7

Надеюсь, вы шутите o_O – 2009-12-23 20:43:46

7

Я считаю, что KDevelop будет ближе от Microsoft Visual Studio. Вы получаете почти все (кроме, к сожалению, VS-отладчик VS, который действительно является убийцей). Его уже зрелый и его развитие довольно быстро и многообещающе.

На самом деле он реализует несколько вещей, которые вы даже не увидите в VS. Например, открыть файл заголовка и файл cpp в режиме вертикальной черепицы и синхронизировать курсор в обоих, , т. Е. При выборе прототипа функций вы всегда имеете свою реализацию справа от вас.

KDevelop - проект KDE, но работает на Gnome. Anjuta - эквивалентный проект на Gnome, но я считаю его непригодным для реальной работы. Для остальной части стека gcc make valgrind ddd (gdb IDE) и python для написания кода.

Если вы в порядке, попробуйте другой подход, чем VS IDE. Вы можете попробовать попробовать vim. Это займет много времени, чтобы привыкнуть к нему.

+2

QT имеет новую IDE, которая выглядит конкурентом Visual Studio. – gbjbaanb 2009-03-03 19:25:54

22

g ++ конечно, но также и Code::Blocks, что является абсолютно фантастической перекрестной платформой IDE (Win32, * nix, Mac).

Я использую ночной (больше как еженедельно в последнее время), строит из SVN. У этого есть почти все колокола и свистки, которые вы ожидаете от современной IDE. Это действительно фантастический проект с открытым исходным кодом.

Кроме того, на Linux вы получаете удовольствие от использования Valgrind, который, вероятно, лучший трекер памяти (он также делает другие вещи) инструмент, который деньги могут купить. И это бесплатно :) Отслеживайте утечки памяти и многое другое с легкостью.

И есть только так много! Linux - такая отличная платформа для разработчиков :)

(править) Просто осознал, что вы упомянули Valgrind в своем вопросе, глупый для чтения слишком быстро.

+2

Я пробовал Code :: Blocks, но я не видел ничего хорошего в этом сразу, конечно, не по сравнению с Eclipse. Можете ли вы рассказать о том, что вам нравится? – 2009-02-20 00:02:49

+4

Я думаю, что Eclipse слишком тяжелый вес. Мне нравится, когда я могу скомпилировать исходный файл без него. Я должен быть в проекте. Мне нравятся, что файлы проекта легкие и неинтрузивные, в отличие от Eclipse, где они драконовские диктаторы. Мне нравится элемент управления Eclipse, но C :: B получает это :) – Adam 2009-02-20 23:55:57

0

Anjuta - прекрасная идея, которая делает Linux C++-dev вполне приятным.

+2

anjuta работает не очень хорошо. – andrewrk 2008-12-09 00:10:46

6

Eclipse CDT действительно очень приятно. Мне все равно приходится прибегать к Emacs время от времени, но мне очень нравится индексирование, вызывать деревья, деревья типов, поддержку рефакторинга (думают, что это не что-то вроде рефакторинга Java) и т. Д. Выделение синтаксиса достаточно мощное, если вы его настроите (может иметь отдельный цвета для локальных переменных, аргументы функции, методы и т. д.). Завершение кода действительно очень удобно. В основном я использовал Eclipse 3.3, но 3.4 тоже отлично.

Кроме того, в основном я использую это для несколько больших проектов (~ 1e6 sloc) - это может быть излишним для игрушечных проектов.

+0

PS. Eclipse 3.4 и CDT 5.0.2+ действительно прочные. Это рай для большой базы кода (мой основной проект - в миллионах строк кода). – 2009-02-19 17:36:05

+0

Я тоже использую CDT. Там есть плагин построителя SCons для Eclipse http://nic-nac-project.org/~lothar/eclipse/update/SConsBuilderPlugin.html – lothar 2009-04-04 01:28:13

4

Когда я разработал код на C++ в Linux, я использовал emacs в качестве редактора и как интерфейс gdb. Позже моя компания приобрела SlickEdit для всех программистов, что является хорошей IDE, возможно, не наравне с Visual Studio. Мы использовали gdb экстенсивно, со случайным использованием valgrind и gprof. Я настоятельно рекомендую использовать язык сценариев для дополнения C++ в повседневных задачах. Я перешел от PERL к python к текущему рубину.Все они выполняют свою работу и имеют сильные стороны, где C++ имеет слабые стороны. И, конечно же, у вас есть все команды оболочки в вашем распоряжении. Я ежедневно использую sort(), uniq(), awk и т. Д. И еще одна рекомендация - ack, преемник grep.

+0

Я предпочитаю Slick для VS, но это, если я закрываю глаза на возможности отладки, в которой VS удаляет Слик из воды. Кроме этого. Ваш пост - это то, что я бы разместил, кроме s/emacs/vim, конечно. ; P – Bernard 2009-02-19 00:40:27

+0

Или это s/vim/emacs? Я думаю, что все правильно. Я сползаю! : o – Bernard 2009-02-19 00:41:10

0

Я еще один для KDevelop. Он имеет очень разнообразный набор инструментов. Я не очень хорошо знаком с VS и независимо от того, интегрировал ли он консольный доступ через свой интерфейс, но KDevelop может позволить вам запускать консоль внутри среды IDE, которую я всегда считаю очень полезной. Вы всегда можете дать Netbeans идти теперь, когда он имеет полную поддержку C/C++.

Помимо этого, я хорошо использую gdb и его версию ddd на основе gui для проблем с кодом или другими ошибками. Для броски программ, как и другие, которые уже размещены - я использую g ++ на терминале и делаю для некоторых более крупных проектов.

12

При разработке приложений на C++ для Linux я предпочитаю использовать кучу инструментов cmdline. Vim расширен с большим количеством плагинов. Gdb ДДД, Valgrind, libefence и SCons (Automake боль в ... Вы знаете где)

0

Eclipse CDT для редактирования, SVN для управления версиями, SCons для управления сборки, CruiseControl для автоматического построения и патентованный единичная тестовая структура.

3

Я использую плагин NetBeans C++, который является превосходным и интегрируется с CVS и SVN. Сторона управления проектами тоже очень хороша. Я работал с ним через несколько минут. Это впечатляющая IDE, но являющаяся Java, может быть немного вялой.

8

emacs, cmake, gdb, git, valgrind. Это может быть не так гладко, как Visual Studio, но он работает хорошо, и легко добавить функциональность с помощью сценариев bash или emacs lisp.

7

Сейчас я пользуюсь Qt Creator. Это кросс-платформенный и очень хорошо сочетается с Qt, хотя (конечно) у вас есть возможность создать автономное приложение.

0

Я использую Eclipse + CDT для Windows и Cygwin + g ++ для перекрестного компиляции для Linux.

(Cross компиляторы построены с использованием crosstool, хороший кросс-компилятор сценариев-набор для генерации)

12
  • г ++

  • Emacs

  • команда Баш линия

  • GdB -мод в emacs (тип MX gdb)

  • сделать

48

Я использую кучу терминальных окон. У меня vim работает на интересные исходные файлы, make и g ++ вывод на другой для ошибок компилятора или сеанса gdb для ошибок времени выполнения. Если мне нужна помощь в поиске определений, я запускаю cscope и использую поддержку vsc cscope для перехода.

Eclipse CDT - мой второй выбор. Это приятно, но огромно, неуклюже и медленнее по сравнению с vim.

Использование терминальных окон и vim очень гибко, потому что мне не нужно носить 400 МБ Java со мной. Я могу использовать сеансы SSH из любого места.

Я использую valgrind, когда мне нужно найти проблему с памятью.

Я использую strace, чтобы посмотреть, что делает мое программное обеспечение на уровне системного вызова. Это позволяет мне очистить действительно глупый код, который вызывает time(0) четыре раза подряд или делает слишком много звонков на poll() или неблокирует read() или такие вещи, как вызов read() на сокете для чтения по 1 байт за раз. (То есть супер неэффективен и ленив!)

Я использую objdump -d для проверки машинного кода, особенно для чувствительных к производительности внутренних шлейфов. Вот как я нахожу такие вещи, как медленность оператора индекса массива в строках по сравнению с использованием итераторов.

Я использую oprofile, чтобы попытаться найти горячие точки в оптимизированном коде, я нахожу, что он часто работает немного лучше, чем gprof, и он может делать такие вещи, как поиск пропусков кэша данных и команд. Это может показать вам, где можно отбросить полезные подсказки для предварительной выборки, используя GCC __builtin_prefetch. Я попытался использовать его, чтобы найти горячие неверно предсказанные ветви, но не мог заставить это работать для меня.

Обновление: Я обнаружил, что perf работает лучше, чем oprofile. По крайней мере, в Linux. Научитесь использовать perf и любить его, как я.

3
  • НКУ
  • GHC
  • Вим
  • Cmake
  • Cscope
  • GDB
  • Valgrind
  • Трассирование
  • мерзавец

Есть ли что-нибудь еще, что вам может понадобиться?

2
  • Bash
  • Vim
  • Сделать
  • G ++
  • GDB
  • Valgrind
  • дргоЕ
  • СВН

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

1

В дополнение ко многим уже перечисленным мы используем набор инструментов autoconf для развертывания нашей программы для пользователей.

2
  • CMake
  • ВИМ
  • г ++
  • KDevelop (составитель из SVN ежедневно!)
  • Mercurial, когда я могу, SVN, когда я должен, мерзавец, когда на самом деле нет другого выбора (вклад в проект, который использует его)
  • Valgrind
5

Вам нужен стандартный набор инструментов + в IDE.

Нет ничего особенного в том, что касается стандартной инструментальной цепочки. Просто установите, например. на Ubuntu/Debian через

aptitude install build-essential 

Интересная часть о IDE.

Мое личное впечатление заключается в том, что в настоящее время - в 21 веке - vi/emacs/make/autotools/configure недостаточно для разработки программных проектов выше определенного размера (... и да, , пожалуйста, пожалуйста, обвините меня за наследия ересь ...).

Какой IDE выбрать - это просто вопрос вкуса. На SOF вы найдете много потоков. Вот постоянная ссылка на вопрос, какая C++ IDE может быть «лучшей»: C++ IDE for Linux.

0

Mi первый выбор - все это emacs с большим количеством плагинов: ecb дает некоторые буферы для навигации по папкам, gdb, svn или git интеграции ... Это первый выбор с использованием Python.

Как второй выбор, Netbeans с плагином C++, очень прост и довольно мощный, но слишком тяжелый, я думаю.

0

Я использую все, что есть в системе. Я предпочитаю Eclipse CDT как редактор, а g ++ - как компилятор. Однако, если eclipse не является вариантом, я использую vi, что тоже хорошо.

0

Проект инкубации Eclipse Linux Tools интегрирует инструменты разработки C/C++. Это графический плагин для интеграции таких инструментов, как Valgrind, GProf, GCov, SystemTap и т. Д. В среду IDE Eclipse C++.

Поиск Eclipse, Helios IDE для C/C++ Linux Разработчики (включает инкубирование компоненты), (120 MB)

Нашел после попытки создать инструменты Linux с помощью файла .psf доступны. К счастью, этот пакет скрывается прямо в нижней части страницы загрузки пакетов Helios.

Обратите внимание, что это инкубационный проект, поэтому вы можете ожидать, что поддержка со временем станет лучше.

Смотрите также: Для получения обновленной информации об установке и использовании Eclipse, Linux Tools Click Here

0

FlexeLint для статического анализа кода, в дополнение к уже упоминалось выше:
Затмения с CDT, GCC, сделать, GDB, VALGRIND, Баш оболочка.
Контроль исходной версии: Clearcase или git, в зависимости от проекта.

Смежные вопросы