Я хочу расширить свои горизонты программирования на Linux. Хороший, надежный базовый набор инструментов важен, и что является более основным, чем IDE?
Я мог бы найти эти ТАКИЕ темы:
- Облегченная IDE для Linux и
- Какие инструменты вы используете для разработки приложений C ++ для Linux?
Я не ищу легкую IDE. Если IDE стоит денег, то я заплачу за это, поэтому она не должна быть бесплатной.
Тогда мой вопрос:
Что хорошего в программировании на С ++ для Linux?
Минимумы достаточно стандартные: подсветка синтаксиса, завершение кода (например, intellisense или его аналог Eclipse) и встроенная отладка (например, базовые точки останова).
Я искал это сам, но их так много, что практически невозможно отделить хорошее от плохого вручную, особенно для такого, как я, у которого мало опыта программирования на C ++ в Linux. Я знаю, что Eclipse поддерживает C ++ , и мне действительно нравится эта IDE для Java, но хорошо ли это для C ++ и есть ли что-то лучше?
Во втором посте на самом деле есть несколько хороших предложений, но я упускаю то, что именно делает интегрированную среду разработки настолько полезной для пользователя, каковы ее (не) преимущества?
Может быть, поэтому мой вопрос должен быть:
Какую IDE вы предлагаете (учитывая ваш опыт) и почему?
Ответы:
Первоначально: путаница
При первоначальном написании этого ответа я недавно переключился с Visual Studio (с многолетним опытом работы) на Linux, и первым делом я попытался найти разумную среду разработки. В то время это было невозможно: не было хорошей IDE.
Крещение: UNIX - это IDE. Все это. 1
И тогда я понял, что IDE в Linux - это командная строка с ее инструментами:
В зависимости от ваших потребностей, вам нужно будет установить и настроить несколько плагинов, чтобы редактор работал хорошо (это одна раздражающая часть). Например, большинство программистов на Vim получат выгоду от плагина YouCompleteMe для интеллектуального автозаполнения.
Как только это будет сделано, оболочка станет вашим командным интерфейсом для взаимодействия с различными инструментами - отладчиками (gdb), профилировщиками (gprof, valgrind) и т. Д. Вы настраиваете среду проекта / сборки с помощью Make , CMake , SnakeMake или любого из различных альтернативы. И вы управляете своим кодом с помощью системы контроля версий (большинство людей используют Git ). Вы также используете tmux (ранее также экран), чтобы мультиплексировать (= думать о нескольких окнах / вкладках / панелях) и сохранить сеанс терминала.
Дело в том, что благодаря оболочке и нескольким соглашениям о написании инструментов все они интегрируются друг с другом . Таким образом, оболочка Linux представляет собой действительно интегрированную среду разработки , полностью соответствующую другим современным средам разработки. (Это не означает, что отдельные IDE не имеют функций, которые могут отсутствовать в командной строке, но обратное также верно.)
Каждому свое
Я не могу преувеличить, насколько хорошо работает вышеуказанный рабочий процесс, как только вы вошли в привычку. Но некоторые люди просто предпочитают графические редакторы, и за годы, прошедшие с момента написания этого ответа, Linux получил набор отличных графических IDE для нескольких разных языков программирования (но, насколько я знаю, для C ++). Дайте им попробовать, даже если - как я - вы в конечном итоге не используете их. Вот только небольшой и предвзятый выбор:
Имейте в виду, что этот список далеко не полный.
1 Я украл этот заголовок из комментария DSM.
2 Я имел в виду здесь Vim. И хотя обычный Vim все еще более чем способен, Neovim является многообещающим перезапуском, и он модернизировал несколько старых бородавок.
источник
Мой личный фаворит - IDE CodeLite 2.x.
см .: http://www.codelite.org
Решение использовать CodeLite было основано на исследовании, касающемся следующей C ++ IDE для Linux:
В конце концов я решил использовать CodeLite 2.x .
Ниже я перечислил некоторые «за» и «против» относительно упомянутых C ++ IDE. Обратите внимание, что это отражает только мое личное мнение!
РЕДАКТИРОВАТЬ : как жаль, что SOF не поддерживает таблицы, поэтому я должен писать в параграфах ...
Затмение Галилео с плагином CDT
Плюсы:
Минусы:
NetBeans 6.7 (обратите внимание, что это также основа для SunStudio IDE)
Плюсы:
Минусы:
KDevelop4 (примечание: я не много тестировал на нем)
Плюсы:
Минусы:
CodeBlocks 8.02 (примечание: я не много тестировал на нем)
Плюсы:
Минусы:
CodeLite 2.x (примечание: это мой личный фаворит)
Плюсы:
Минусы:
источник
Вскоре вы обнаружите, что IDE недостаточно, и вам все равно придется изучать инструментарий GCC (что не сложно, по крайней мере, изучить основные функции). Но без вреда в уменьшении переходной боли с IDE, IMO.
источник
Быстрый ответ, просто чтобы добавить немного знаний к этой теме:
вы обязательно должны проверить NetBeans . Netbeans 6.7 имеет следующие особенности:
Я думаю, что это идеальная (и гораздо лучше) замена Visual Studio и очень хороший инструмент для изучения C / C ++.
Удачи!
источник
По крайней мере, для конкретных проектов Qt, Qt Creator (от Nokia / Trolltech / Digia) показывает большие перспективы.
источник
Моим первым источником были
man
страницы инструментов . Просто введитев командной строке (
$
здесь часть приглашения, а не ввод).В зависимости от платформы, они довольно хорошо написаны и могут быть найдены в Интернете. В случае
make
, я фактически прочитал полную документацию, которая заняла несколько часов. На самом деле, я не думаю, что это необходимо или полезно в большинстве случаев, но у меня было несколько особых требований в моих первых заданиях под Linux, которые требовали сложного make-файла. После написания make-файла я передал его опытному коллеге, который сделал несколько небольших изменений и исправлений. После этого я в значительной степени зналmake
.Я использовал GVIM, потому что у меня был некоторый (но не очень) предыдущий опыт, я ничего не могу сказать об Emacs или альтернативах. Я считаю, что это действительно помогает читать
.gvimrc
конфигурационный файл других людей . Многие люди размещают это в сети. Вот мой .Не пытайтесь освоить все binutils сразу, слишком много функций. Но получите общий обзор, чтобы вы знали, где искать, когда что-то понадобится в будущем. Вы должны знать все важные параметры для
g++
иld
(средство компоновки GCC, которое вызывается автоматически, за исключением случаев, когда это явно запрещено).Подсветка синтаксиса: да, и намного лучше, чем Visual Studio. Код завершения: Да - иш . Во-первых, я должен признать, что я не использовал завершение кода C ++ даже в Visual Studio, потому что (по сравнению с VB и C #) это было недостаточно хорошо. Сейчас я не часто его использую, но, тем не менее, GVIM имеет встроенную поддержку завершения кода для C ++. В сочетании с ctags библиотекой и плагином, подобным taglist, это почти IDE.
На самом деле, то, что заставило меня начать, была статья Армин Ронахер. Прежде чем читать текст, посмотрите на скриншоты в конце!
Да. Но то же самое для Visual Studio, не так ли (я никогда не использовал Whole Tomato)? Конечно, подсветка синтаксиса покажет вам несоответствующие скобки, но это все.
Я использую
gdb
который является инструментом командной строки. Там также графический интерфейс называетсяDDD
.gdb
это современный инструмент отладки и может делать все, что вы можете сделать в IDE. Единственное, что меня действительно раздражает, это чтение трассировки стека, потому что строки не имеют отступов и форматирования, поэтому очень сложно сканировать информацию, когда вы используете много шаблонов (что я и делаю). Но они также загромождают трассировку стека в IDE.Вам даже не следует сравнивать современный полнофункциональный редактор, такой как Emacs или GVIM, с Блокнотом. Блокнот - украшенный
TextBox
элемент управления, и это действительно имеет значение. Кроме того, работа в командной строке - это совсем другой опыт в Linux и Windows. Окнаcmd.exe
сильно повреждены. PowerShell намного лучше./ РЕДАКТИРОВАТЬ: я должен четко упомянуть, что GVIM имеет редактирование с вкладками (как в просмотре вкладок, а не как табуляции) Мне потребовались годы, чтобы найти их, хотя они совсем не спрятаны. Просто введите
:tabe
вместо обычного:e
при открытии файла или создании нового, и GVIM создаст новую вкладку. Переключение между вкладками может осуществляться с помощью курсора или нескольких различных сочетаний клавиш (в зависимости от платформы). Клавишаgt
(тип g, затем tв командном режиме) должна работать везде и переходить к следующей вкладке или вкладке №. п, если число было дано. Типа,:help gt
чтобы получить больше помощи.источник
clang_complete
плагин. Этот ответ с 2009 года, а некоторые части устарели. Но были улучшения со всех сторон, так что это более или менее выравнивается.Не повторять ответ, но я думаю, что могу добавить немного больше.
Slickedit - отличная среда разработки.
Он хорошо поддерживает большие базы кода, не замедляя и не тратя все свое время на индексацию. (Это проблема, которая у меня была с CDT затмения). Скорость Slickedit, пожалуй, самая приятная вещь на самом деле.
Завершение кода работает хорошо, и есть много вариантов для таких вещей, как автоматическое форматирование, украшение и рефакторинг.
Он имеет встроенную отладку.
Он имеет поддержку плагинов и довольно активное сообщество, создающее их.
Теоретически, вы должны быть в состоянии хорошо интегрироваться с людьми, занимающимися традиционным make-файлом, так как это позволяет вам создавать проект непосредственно из одного, но это не сработало так гладко, как мне бы хотелось, когда я его пробовал.
Помимо Linux, существуют версии для Mac и Windows, если они вам понадобятся.
источник
Как старый UNIX парень, я всегда использую Emacs. Но у этого есть довольно крутая и длинная кривая обучения, поэтому я не уверен, что могу рекомендовать это новичкам.
Там действительно нет "хорошей" IDE для Linux. Eclipse не очень хорош для C / C ++ (CDT улучшается, но пока не очень полезен). Другие упускают все функции, которые вы будете искать.
Очень важно узнать, как работают все отдельные инструменты (gcc, make, gdb и т. Д.). После того, как вы это сделаете, вы можете обнаружить, что Visual Studio делает это очень ограниченно.
источник
Оформить заказ Netbeans, он написан на Java, поэтому у вас будет одинаковая среда независимо от вашей ОС, и он поддерживает гораздо больше, чем просто C ++.
Я не буду пытаться убедить вас, потому что я думаю, что IDE могут быть очень личным выбором. Для меня это повышает мою производительность, будучи быстрым, поддерживая языки, на которых я кодирую, и имеет стандартные функции, которые вы ожидаете от IDE.
источник
Просто быстрое продолжение этого вопроса ...
Прошел месяц с тех пор, как я начал использовать Vim в качестве основного инструмента с графическим интерфейсом для программирования C ++ в Linux. Сначала кривая обучения была действительно немного крутой, но через некоторое время и с включенными правильными опциями и запущенными скриптами я действительно понял это!
Мне нравится, как вы можете настроить Vim для удовлетворения ваших потребностей; просто добавить / изменить сопоставления клавиш, и Vim превращается в высокопроизводительную среду IDE.
Инструментарий для сборки и компиляции программы на С ++ в Linux также интуитивно понятен. make и g ++ являются этими инструментами , которые вы будете использовать.
Отладчик ддд , однако , не так уж хорошо, но , возможно , это потому , что у меня не было времени , чтобы освоить это правильно.
Таким образом, для любого, кто ищет или ищет хорошую C ++ IDE в Linux, как и я, ваша лучшая ставка лежит на стандартных доступных инструментах в самой Linux (Vim, g ++, ddd), и вы должны хотя бы попытаться использовать их, прежде чем искать сонетинг еще ...
И последнее, но не менее важное, я действительно хочу поблагодарить Конрада за его ответ здесь. Это действительно помогло мне найти свой путь в среде разработки Linux, спасибо!
Я также не закрываю этот вопрос, так что люди могут по-прежнему реагировать или, возможно, даже добавлять новые предложения или дополнения к уже по-настоящему приятным ответам ...
источник
Я рекомендую вам прочитать «Искусство программирования UNIX» . Это заставит вас думать об использовании среды в качестве вашей IDE.
источник
Краткий ответ: выберите любой «редактор», который вам нравится, затем используйте консоль GDB или простой интерфейс GDB для отладки вашего приложения. Отладчики поставляются с модными IDE, такими как Netbeans sucks для C / C ++. В качестве редактора я использую Netbeans, а в качестве отладчика - консоль Insight и GDB.
Благодаря пониманию у вас есть хороший графический интерфейс и мощь GDB.
Как только вы привыкнете к командам GDB, вы начнете любить его, так как вы можете делать то, что вы никогда не сможете сделать, используя графический интерфейс. Вы можете использовать даже использовать Python качестве языка сценариев, если вы используете GDB 7 или более новую версию.
Большинство людей здесь уделяют больше внимания «редакторам» IDE. Однако, если вы разрабатываете большой проект на C / C ++, вы можете легко потратить более 70% своего времени на «отладчики». Отладчики модных IDE по крайней мере на 10 лет отстают от Visual Studio. Например, Netbenas имеет очень похожие интерфейсы с Visual Studio. Но его отладчик имеет ряд недостатков по сравнению с Visual Studio.
Список может быть намного длиннее.
Я был так расстроен недостатками Netbeans или других подобных IDE, что начал изучать саму GDB. Я обнаружил, что сам GDB очень мощный. GDB не имеет всех «недостатков», упомянутых выше. На самом деле, GDB очень мощный, во многих отношениях он даже лучше, чем Visual Studio. Здесь я просто покажу вам очень простой пример.
Например, у вас есть такой массив:
Когда ваше приложение останавливается, и вы хотите проверить данные в IdAndValues. Например, если вы хотите найти порядковые номера и значения в массиве для определенного «идентификатора», вы можете создать скрипт, подобный следующему:
Вы можете использовать все переменные в вашем приложении в текущем контексте, ваши собственные переменные (в нашем примере это $ i), переданные аргументы (в нашем примере это $ arg0) и все команды GDB (встроенные или определенные пользователем). ).
Используйте PrintVal 1 из приглашения GDB, чтобы распечатать значения для идентификатора "1"
Кстати, NetBeans поставляется с консолью GDB, но, используя консоль, вы можете аварийно завершить работу NetBeans. И я считаю, что именно поэтому консоль по умолчанию скрыта в NetBeans
источник
Я с помощью " Geany " нашел пока хорошее, это быстрый и легкий IDE.
Среди особенностей Джани :
источник
Если вам нравится Eclipse для Java, я предлагаю Eclipse CDT. Несмотря на то, что поддержка C / C ++ не такая мощная, как для Java, она по-прежнему предлагает большинство функций. У него есть хорошая функция под названием Managed Project, которая облегчает работу с проектами C / C ++, если у вас нет опыта работы с Makefiles. Но вы все равно можете использовать Makefiles. Я занимаюсь программированием на C и Java, и я действительно доволен CDT. Я разрабатываю прошивку для встраиваемого устройства на C и приложение на Java, которое взаимодействует с этим устройством, и очень приятно использовать одну и ту же среду для обоих. Я думаю, это, вероятно, делает меня более продуктивным.
источник
Мне нравится, как люди полностью пропускают запрос в оригинальном вопросе для IDE. Linux НЕ является IDE. Это просто не то, что означают эти слова. Я изучил c и c ++, используя vi, gcc и make, и я не говорю, что они не являются адекватными инструментами, но они НЕ являются IDE. Даже если вы используете более сложные инструменты, такие как vim или emacs, или любой другой модный редактор, который вы хотите, ввод команд в командной строке не является IDE.
Кроме того, вы все знаете, что make существует как часть визуальной студии, верно? Идея о том, что IDE является «ограничивающей», просто глупа, если вы можете использовать IDE для ускорения некоторых вещей, но при этом все равно сможете использовать командную строку при необходимости.
Все, что я сказал, я бы предложил, как и несколько выше, пробовать блоки кода. Он получил достойную подсветку кода, довольно легкий способ создания проекта, кодирования, запуска и т. Д., Который является ядром настоящей IDE и выглядит довольно стабильным. Отладка отстой ... Я никогда не видел достойного интерактивного отладчика в любом варианте Linux / Unix. GDB не так. Если вы привыкли к визуальной отладке в студийном стиле, вам не повезло.
В любом случае, я пойду собирать свои вещи, я знаю, что толпа linux только для одного будет кричать об этом и быстро выгонит меня из города.
источник
make + vim + gdb = одна отличная IDE
источник
Мне очень нравится IDE Ultimate ++ . У него есть некоторые функции, которые были разработаны для использования со своей собственной библиотекой (что, кстати, довольно неплохой инструментарий, если вы не хотите покупать ни на GTK +, ни на QT), но оно прекрасно работает с обычными проектами на C ++. Он обеспечивает достойное завершение кода, хорошую раскраску синтаксиса, встроенную отладку и все другие функции, которые поддерживает большинство современных IDE.
источник
Я действительно предлагаю кодовые блоки . Он не такой тяжелый, как Eclipse, и у него есть поддержка проекта Visual Studio.
источник
Возможно, Linux Tools Project для Eclipse может удовлетворить ваши потребности?
источник
В Linux существует множество IDE:
По моему опыту, наиболее ценными являются Eclipse и Qt Creator. . Оба предоставляют все «стандартные» функции (например, автозаполнение, подсветка синтаксиса, отладчик, интеграция с git). Стоит отметить, что Eclipse также предоставляет функции рефакторинга, а Qt Creator обеспечивает интеграцию с Valgrind и поддержку развертывания на удаленных целях.
Также коммерческая CLion IDE кажется очень хорошей (но я не использовал ее широко).
источник
Я слышал, что Anjuta довольно приятна для пользователей Gnome. Я немного поиграл с KDevelop, и это здорово, но не хватает функциональности. Code :: Blocks также очень перспективен, и мне он больше нравится.
источник
Sun Studio версии 12 можно загрузить бесплатно (доступна БЕСПЛАТНАЯ и платная поддержка) - http://developers.sun.com/sunstudio/downloads/thankyou.jsp?submit=%A0FREE+Download%A0%BB%A0 .
Я уверен, что у вас есть поддержка завершения кода и отладки, включая поддержку плагинов в этой IDE.
Sun Studio доступна как для Linux, так и для Solaris. форумы: http://developers.sun.com/sunstudio/community/forums/index.jsp . Форумы Sun Studio Linux: http://forum.sun.com/forum.jspa?forumID=855
Я буду рад услышать ваши отзывы об этом инструменте.
BR,
~ A
источник
Ранее я использовал Ultimate ++ IDE, и это довольно хорошо.
источник
Я бы в основном согласился, но проблема также заключается в восприятии: мы забываем, как трудно было работать продуктивно в любой выбранной IDE (или другой среде). Я нахожу IDE (Visual Studio, NetBeans, Eclipse) удивительно громоздким во многих отношениях.
Я поддержу это; используйте Emacs в качестве основного редактора для Linux и MSW (XP2, W2K). Я бы не согласился с тем, что у него крутая кривая обучения, но сказал бы, что из-за огромного количества функций у него длинная кривая обучения. Вы можете быть продуктивными в течение короткого времени, но если вы хотите, вы можете изучить его новые возможности на долгие годы.
Однако - не ожидайте, что все функции Emacs будут доступны в выпадающих меню, слишком много функций, чтобы найти их там.
Как я уже говорил, я годами использовал GNU Emacs на MSW. И он всегда хорошо работал с Visual Studio, пока я не «обновился» до 2008 года; теперь иногда происходит много секунд перед обновлением файлов с диска. Основной причиной редактирования в окне VS является функция завершения кода «Intellisense».
источник
Джани, я рекомендую
источник
Хотя я использую Vim, некоторые из моих коллег используют SlickEdit, который выглядит довольно хорошо. Я не уверен в интегрированной отладке, потому что мы не смогли бы сделать это в нашем конкретном проекте в любом случае.
SlickEdit имеет хорошую поддержку для навигации по большим базам кода с перекрестными ссылками и переходом по тегам. Конечно, у него есть базовые вещи, такие как подсветка синтаксиса и завершение кода.
источник
Я использую Eclipse CDT и Qt Creator (для приложений Qt).
Это мои предпочтения. Это очень наводящий вопрос, и ответов на него столько же, сколько и разработчиков. :)
источник
SlickEdit. Я использую и люблю SlickEdit с 2005 года, как в Windows, так и в Linux. У меня также есть опыт работы в Visual Studio (5, 6, 2003, 2005) и только с Emacs и командной строкой. Я использую SlickEdit с внешними make-файлами, некоторые из моих товарищей по команде используют SlickEdit, другие используют Emacs / vi. Я не использую интегрированный отладчик, интегрированный контроль версий, интегрированную систему сборки: я нахожу слишком большую интеграцию, чтобы быть реальной болью. SlickEdit является надежным (очень мало ошибок), быстрым и интуитивно понятным. Это как немецкая машина, машина водителя.
Новейшие версии SlickEdit предлагают множество функций, которые меня не интересуют, я немного обеспокоен тем, что продукт будет раздутым и разбавленным в будущем. На данный момент (я использую V13.0) это здорово.
источник
Для меня Ultimate ++ кажется лучшим решением для написания кросс-ОС.
источник
Если вы долгое время использовали vim, вы должны сделать это своей IDE. Есть много доступных дополнений. Я нашел некоторые из них довольно полезными, и скомпилировал их здесь, взгляните на это.
И многое другое в серии советов и рекомендаций по vi / vim.
источник