Какие инструменты вы используете для разработки приложений C ++ для Linux? [закрыто]

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

19.08.2008 23:49:40
Можете ли вы объяснить, что вы подразумеваете под гладкостью ? Вы хотите силы и универсальности? Скорость и эффективность? Или вам больше нравятся тяжелые кнопки и меню с графическим интерфейсом «ведите меня за руку, привязанные за спиной»? (Не то, чтобы я когда-либо возлагал вину на IDE за то, что я не могу делать то, что, как я знаю, безопасно.)
NVRAM 23.12.2009 20:54:04
Позор мне, как чистому разработчику UNIX - но я должен признаться, что Microsoft Visual Studio - одна из лучших IDE, доступных для разработки на C ++.
anon 23.12.2009 21:57:09
@Clayton: этот вопрос может быть проблематичным. Как вы решите, какой ответ принять, например, какой «правильный»?
anon 24.12.2009 08:02:37
Просто прочитайте последнюю часть как "которая соперничает с болезнью Microsoft Visual Studio?" ;) (было согласовано)
mlvljr 13.03.2012 17:17:16
24 ОТВЕТА

G ++ и сделать

7
19.08.2008 23:51:28
И я полагаю, что вы редактируете с помощью 'cat'?
Arafangion 20.04.2009 03:27:46
Нет, я использую подключение к удаленному рабочему столу на своем компьютере с Windows и использую eclipse для написания кода, затем
andrewrk 23.04.2009 00:23:39
Я надеюсь, что вы шутите o_O
Nicolás 23.12.2009 20:43:46
Как насчет намагниченной иглы и устойчивой руки?
AntonioMO 24.12.2009 20:29:31
Вау, этот ответ тупой. Приношу извинения. Я использую Qt Creator, vim, Eclipse и Microsoft Visual Studio.
andrewrk 31.12.2009 09:06:58

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

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

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

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

7
20.08.2008 00:08:35
В QT появилась новая среда разработки, которая выглядит как конкурент Visual Studio.
gbjbaanb 3.03.2009 19:25:54

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

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

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

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

(править) Только что понял, что вы упомянули Вальгринда в своем вопросе, глупая я, что слишком быстро его прочитал

24
23.12.2009 21:47:20
Я попробовал Code :: Blocks, но я не увидел в этом ничего хорошего, конечно, по сравнению с Eclipse. Можете ли вы рассказать о том, что вам нравится в этом?
Zan Lynx 20.02.2009 00:02:49
Я думаю, что Затмение слишком тяжелый вес. Мне нравится, когда я могу скомпилировать исходный файл без него в проекте. Мне нравится, что файлы проекта легки и ненавязчивы, в отличие от Eclipse, где они являются драконовскими диктаторами. Мне нравится управление исходным кодом Eclipse, но C :: B получает это :)
Adam 20.02.2009 23:55:57

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

0
20.08.2008 01:45:12
Анюта не очень хорошо работает.
andrewrk 9.12.2008 00:10:46

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

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

6
20.08.2008 02:05:37
PS. Eclipse 3.4 и CDT 5.0.2+ действительно надежны. Это рай для большой базы кода (мой основной проект состоит из миллионов строк кода).
Pat Notz 19.02.2009 17:36:05
Я тоже использую CDT. Есть плагин для SCons для Eclipse nic-nac-project.org/~lothar/eclipse/update/…
lothar 4.04.2009 01:28:13

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

5
20.08.2008 06:44:36
Я предпочитаю Slick VS, но это если я закрываю глаза на возможности отладки, в которых VS выбрасывает Slick из воды. Кроме этого, хотя. Ваш пост - в значительной степени то, что я бы написал, кроме s / emacs / vim, конечно. ; P
Bernard 19.02.2009 00:40:27
Или это s / vim / emacs? Я думаю, что это правильно. Я поскользнулся! : o
Bernard 19.02.2009 00:41:10
Я верю в s / emacs / vim, но опять же, эксперт по vim знал бы это лучше, чем emacs ;-)
Yuval F 19.02.2009 07:41:23

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

Помимо этого, я хорошо использую GDB и его версию DDD на основе графического интерфейса для проблем с кодом или других ошибок. Для одноразовых программ, как и другие, которые уже публиковались - я использую g ++ на терминале и использую для некоторых более крупных проектов.

0
29.08.2008 06:24:29

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

13
25.11.2008 11:13:01
какие плагины вы используете?
phillipwei 28.07.2009 15:10:50
Для Vim -> NERD_tree.vim, a.vim, calendar.vim, code_complete.vim, cscope_maps.vim, taglist.vim
zhengtonic 28.07.2009 15:31:28

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

0
8.12.2008 23:02:14

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

3
8.12.2008 23:06:57

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

9
24.12.2009 03:43:41
+1 с s / emacs / vim /; с / CMake / марка /;
just somebody 23.12.2009 21:48:49
После нескольких лет попыток использовать различные инструменты для разработки Linux, я действительно думаю, что вы используете лучший инструмент в своем роде.
kovan 12.10.2010 13:42:51
То же самое, что и @justsomebody: D
Adri C.S. 30.04.2013 10:07:15

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

8
22.11.2015 21:20:51
Я люблю Qt Creator. Безусловно, отличная перспективная среда разработки, которая прекрасно вписывается в мой рабочий стол.
Nick Presta 23.12.2009 22:14:51

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

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

0
9.12.2008 18:45:20
  • г ++

  • Emacs

  • командная строка bash

  • GDB-режим в Emacs (тип MX GDB)

  • делать

12
19.02.2009 00:10:48
Если бы вы добавили муравья, вы были бы гением.
NVRAM 23.12.2009 20:55:11

Я использую кучу окон терминала. У меня vim работает на интересных исходных файлах, make и вывод g ++ на другом для ошибок компилятора или сеанс gdb для ошибок во время выполнения. Если мне нужна помощь в поиске определений, я запускаю cscope и использую поддержку vim's 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. Учись пользоваться перфом и люби его, как и я.

53
10.04.2014 03:42:23
Хороший обзор с хорошими указателями и четким обоснованием.
sototozo 23.12.2009 22:10:32
  • НКУ
  • GHC
  • напор
  • Cmake
  • Cscope
  • GDB
  • Valgrind
  • Трассирование
  • мерзавец

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

3
19.02.2009 00:44:39
lint, cflow, gprof, unifdef
Jérôme Radix 19.03.2015 09:20:23
  • удар
  • напор
  • Делать
  • G ++
  • GDB
  • Valgrind
  • дргоЕ
  • СВН

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

2
19.02.2009 00:49:50
+1, за исключением s / vim / gvim /, это графический интерфейс с некоторым значением (но, если честно, я использовал vim в черно-белом терминале около 8 лет назад, и то, что он будет делать в отдел подсветки синтаксиса продолжает удивлять меня и по сей день)
just somebody 23.12.2009 21:52:51

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

1
3.03.2009 19:19:53
@Carter Galle: автоинструменты ортогональны упаковочным системам
just somebody 23.12.2009 21:49:42
  • CMake
  • напор
  • г ++
  • kdevelop (составлено из SVN ежедневно!)
  • Mercurial, когда я могу, SVN, когда мне нужно, мерзость, когда другого выбора нет (способствуя проекту, который его использует)
  • Valgrind
2
23.12.2009 20:45:58
hg-git.github.com должен устранить случаи, « когда действительно нет другого выбора »
just somebody 23.12.2009 21:54:24

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

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

aptitude install build-essential

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

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

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

5
23.05.2017 12:34:21
какое у вас наследие? Visual Studio 6.0? -1 для «абсолютно необходимой IDE», возвращается при изменении на «относительно». ;)
just somebody 23.12.2009 21:56:27
Arrrgh - я использовал не то слово. Я думал, что «наследие» - очень сложный способ выразить «богохульство». В следующий раз я буду советоваться мой немецкий-английский словарь перед вывешивать;)
anon 23.12.2009 22:55:38
@ просто кто-то: вы правы в отношении "абсолютно нужна IDE". Я изменил формулировку.
anon 24.12.2009 07:57:30

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

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

0
23.12.2009 21:42:18

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

0
23.12.2009 22:01:42

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

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

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

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

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

0
28.10.2010 08:26:51

FlexeLint для статического анализа кода, в дополнение к упомянутому выше:
Eclipse с CDT, gcc, make, gdb, valgrind, bash shell.
Исходный контроль версий: Clearcase или git, в зависимости от проекта.

0
5.03.2011 22:03:16