C++ IDE для Linux? [закрытый]

Для меня я столкнулся с этой ошибкой, когда у моего тестового объекта не было быстрых файлов, которые моя цель создания приложения находилась в источниках компиляции. Это было очень запутанно, потому что «необъявленный тип» использовался во многих других местах без проблем, и ошибка казалась расплывчатой. Таким образом, решение было, конечно, добавить к тестовой цели файл, содержащий «необъявленный тип».

209
задан 7 revs, 3 users 38% 23 May 2017 в 02:18
поделиться

36 ответов

Первоначально: беспорядок

, первоначально пишущий этот ответ, я недавно переключился с Visual Studio (с годами опыта) к Linux и первой вещи, которую я сделал был попытаться найти разумный IDE. В то время, когда это было невозможно: никакой хороший IDE не существовал.

Крещение: UNIX является IDE. Все это. <глоток> 1

И затем я понял, что IDE в Linux является командной строкой со своими инструментами:

  • Первый Вы настраиваете свою оболочку
  • и Ваш редактор; выберите свой яд —, оба - состояние:

В зависимости от Ваших потребностей, необходимо будет тогда установить и настроить несколько плагинов, чтобы заставить редактора работать приятно (that’s одна раздражающая часть). Например, большинство программистов на Vim извлечет выгоду из плагин YouCompleteMe для умного автозавершения.

Однажды that’s сделанный, оболочка является Вашим интерфейсом команды для взаимодействия с различными инструментами — Отладчиков (gdb), Профилировщиков (gprof, valgrind), и т.д. Вы настраиваете свой проект/среду сборки с помощью , Делают , CMake, SnakeMake или любая из различных альтернатив. И Вы управляете своим кодом с системой управления версиями (большинство людей использует Мерзавец ). Вы также используете tmux (ранее также, экран) для мультиплексирования (= думают несколько окон/вкладок/панелей), и сохраните терминальный сеанс.

Дело в том, что, благодаря оболочке и нескольким соглашениям записи инструмента, эти весь интегрируются друг с другом . И тем путем оболочка Linux является действительно интегрированная среда разработки , полностью наравне с другими современными IDE. (Этот doesn’t означает, что отдельные IDE don’t имеют функции, в которых может испытывать недостаток командная строка, но инверсия также верна.)

каждому их собственное

я не могу преувеличить, как хорошо вышеупомянутый рабочий процесс функционирует однажды you’ve выработавший привычку. Но некоторые люди просто предпочитают графических редакторов, и в годах, так как этот ответ был первоначально записан, Linux получил комплект превосходных графических IDE для нескольких различных языков программирования (но не, до знающего I’m, для C++). Действительно дайте им попытку даже if — В как me —, В Вы заканчивают тем, что не использовали их. Here’s просто маленький и смещенный выбор:

Имеют в виду, что этот список совсем не завершен.

<час>

<глоток> 1 я украл тот заголовок из комментария dsm’s.

<глоток> 2 я раньше обращался к Vim здесь. И в то время как простой Vim еще более, чем способен, Неоэнергия является многообещающим перезапуском, и it’s модернизировал несколько старых бородавок.

261
ответ дан 3 revs 23 November 2019 в 04:36
поделиться

Хотя я использую Vim, часть моего использования коллег SlickEdit, который выглядит довольно хорошим. Я не уверен в интегрированной отладке, потому что мы не были бы в состоянии сделать это на нашем конкретном проекте так или иначе.

SlickEdit действительно имеет хорошую поддержку навигации по большим кодовым базам с переходом тега и перекрестными ссылками. Конечно, это имеет основной материал как подсветка синтаксиса и завершение кода также.

5
ответ дан 2 revs, 2 users 57% 23 November 2019 в 04:36
поделиться

И затем я заметил, что это просто не то, как Вы работаете там*, и я вывел все, провел несколько дней, читая руководства, настроил мою оболочку (удар), настроил среду GVIM, изучил набор инструментальных средств GCC/binutils, сделайте и gdb, и жил счастливо с тех пор.

я главным образом согласился бы, но проблемой является также одно из восприятия: мы забываем, как трудный это должно было стать продуктивным в любом, выбрал IDE (или другая среда). Я нахожу IDE (Visual Studio, NetBeans, Eclipse) удивительно громоздкий таким количеством способов.

Как прежний парень UNIX, я всегда использую Emacs. Но это имеет довольно крутую и долгую кривую обучения, таким образом, я не уверен, что могу рекомендовать это вновь прибывшим.

я был бы второй это; используйте Emacs в качестве моего основного редактора и на Linux и на магистре социального обеспечения (XP2, W2K). Я не согласился бы, который это имеет крутой кривая обучения, но сказало бы, что из-за огромного количества функций имеет длинный кривая обучения. Можно быть продуктивными в течение короткого времени, но если Вы хотите Вас, может изучить новые возможности его в течение последующих лет.

Однако - не ожидают, что все функции Emacs будут доступны в выпадающих меню, существует только слишком много функциональности для нахождения его там.

, Поскольку я упомянул, я использовал GNU Emacs на магистре социального обеспечения в течение многих лет. И это всегда работало хорошо с Visual Studio, пока я не "обновил" до 2008; теперь это иногда задержки за многие секунды до обновляющих файлов от диска. Главной причиной для редактирования в окне VS является функция завершения кода "Intellisense".

5
ответ дан NVRAM 23 November 2019 в 04:36
поделиться

А быстрый ответ, только для добавления немного большего знания к этой теме:
необходимо определенно проверить NetBeans. Netbeans 6.7 имеет следующие функции:

  • Проекты C/C++ и Шаблоны: подсветка синтаксиса Поддержек, автоматическое завершение кода, автоматическое добавление отступа.
  • Это имеет Отладчик C/C++
  • Конфигурации Компилятора Поддержек, Менеджер конфигурации и Поддержка Make-файла (с Мастером).
  • Это имеет Окно Классов, Окно Использований и Окно навигации Файла (или панель).
  • А представление Макрорасширения , и также подсказки .
  • Поддержка разработка кварты .

я думаю, что это - идеальное (и намного лучше) замена Visual Studio и очень хороший инструмент для изучения C/C++.

Удачи!

66
ответ дан 2 revs, 2 users 75% 23 November 2019 в 04:36
поделиться

По крайней мере, для спокойных определенных проектов, Создатель кварты (от Nokia/Trolltech/Digia) показывает большое обещание.

52
ответ дан 3 revs, 3 users 50% 23 November 2019 в 04:36
поделиться

Для не повторения ответа но я думаю, что могу добавить немного больше.

Slickedit является превосходным IDE.

Это поддерживает большие кодовые базы хорошо, не замедляясь или проводя все его время, индексируя. (Это - проблема, которую я имел с CDT затмения). Скорость Slickedit является, вероятно, самой хорошей вещью об этом на самом деле.
завершение кода работает хорошо и существует большое количество опций для вещей как автоматическое форматирование, украшение и рефакторинг.
Это действительно имеет интегрированную отладку.
Это имеет сменную поддержку и довольно активное сообщество, создающее их.
В теории, необходимо быть в состоянии интегрироваться хорошо с людьми, делающими традиционный материал make-файла, поскольку это позволяет Вам создавать проект непосредственно от одного, но это не работало так же гладко, как мне понравится, когда я попробовал его.
В дополнение к Linux, существует Mac и версии Windows его, должны Вы нуждаться в них.

25
ответ дан rck 23 November 2019 в 04:36
поделиться

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

Мой первый источник были на самом деле инструменты man страницы. Просто тип

$ man toolname

на командной строке ($ вот часть подсказки, не вход).

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

я использовал GVIM, потому что у меня были некоторые (но не очень) предшествующий опыт там, я не могу сказать ничего вообще о Emacs или альтернативах. Я нахожу, что это действительно помогает считать другие народы .gvimrc файл конфигурации. Многие люди помещают его на сеть. Вот мой .

не пытаются освоить весь binutils сразу, существует слишком много функций. Но получите общий обзор, таким образом, Вы будете знать, где искать при необходимости в чем-то в будущем. Вы должны , однако, знайте все важные параметры для g++ и ld (инструмент компоновщика GCC, это вызывается автоматически кроме тех случаев, когда явно предотвращенный).

Также мне любопытно, у Вас есть завершение кода и подсветка синтаксиса, когда Вы кодируете?

Подсветка синтаксиса: да, и намного лучший, чем Visual Studio. Завершение кода: да - выход . Во-первых, я должен признать, что не использовал завершение кода C++ даже в Visual Studio, потому что (по сравнению с VB и C#) это не было достаточно хорошо. Я не использую его часто теперь, но тем не менее, GVIM имеет поддержка завершения собственного кода C++. Объединенный с библиотека ctags и плагин как [1 120] taglist это - почти IDE.

На самом деле, то, что запустило меня, было статья Armin Ronacher. Прежде, чем прочитать текст, посмотрите на снимки экрана в конце его!

необходимо ли скомпилировать сначала прежде, чем получить (синтаксис) ошибки?

Да. Но это - то же для Visual Studio, не он (я никогда не использовал Целый Помидор)? Конечно, подсветка синтаксиса покажет Вам несоответствующие скобки, но это обо всех.

и как Вы отлаживаете (снова думают точки останова и т.д.)?

я использую gdb, который является инструментом командной строки. Существует также графический frontend, названный DDD. gdb современное средство отладки и может сделать все, что можно сделать в IDE. Единственная вещь, которая действительно раздражает меня, читает отслеживание стека, потому что строки не располагаются с отступом или форматируются так, действительно трудно просканировать информацию при использовании большого количества шаблонов (который я делаю). Но те также создают помехи отслеживанию стека в IDE.

Как я сказал, у меня было 'удовольствие' установить мои первые шаги в блокноте окон использования языка программирования Java и компиляторе Java командной строки в средней школе, и это было.. wel кошмар! конечно, когда я мог сравнить его с другими курсами программирования, я имел тогда, где у нас был достойный IDE

, Вы не должны даже пытаться сравнить современного, полнофункционального редактора как Emacs или GVIM к Блокноту. Блокнот является украшенным TextBox управление, и это действительно имеет все значение. Кроме того, работа над командной строкой является совсем другим опытом в Linux и Windows. Windows cmd.exe сильно наносят вред. PowerShell намного лучше.

РЕДАКТИРОВАНИЕ/: Я должен упомянуть явно, что GVIM снабдил вкладками редактирование (как в просмотре с использованием вкладок, не вкладках по сравнению с пробелами)! Это взяло мне возрасты для нахождения их, хотя они не скрыты вообще. Просто тип :tabe вместо плоскости :e при открытии файла или создании нового и GVIM создаст новую вкладку. Переключение между вкладками может быть сделано с помощью курсора или нескольких различных ярлыков (в зависимости от платформы). Ключ gt (тип g , тогда t в командном режиме) должен работать везде, и переходы к следующей вкладке или вкладке нет. n, если число было дано. Тип :help gt для получения большего количества справки.

32
ответ дан 6 revs, 3 users 86% 23 November 2019 в 04:36
поделиться

Как прежний парень UNIX, я всегда использую Emacs. Но это имеет довольно крутую и долгую кривую обучения, таким образом, я не уверен, что могу рекомендовать его вновь прибывшим.

действительно нет "хорошего" IDE для Linux. Eclipse не очень хорош для C/C++ (CDT улучшается, но еще не очень полезен). Другие пропускают все функции, Вы собираетесь быть поиском.

действительно важно учиться, как все отдельные инструменты (gcc, сделайте, gdb, и т.д.), работа. После того, как Вы сделаете так, можно найти Visual Studio способом сделать вещи очень ограничить.

23
ответ дан 2 revs 23 November 2019 в 04:36
поделиться

Контроль Netbeans, это записано в Java, таким образом, у Вас будет та же среда независимо от Вашей ОС, и это поддерживает намного больше, чем просто C++.

я не собираюсь пытаться убедить Вас, потому что я думаю, что IDE могут быть очень личным выбором. Для меня это улучшает мою производительность, будучи быстрым, поддерживая языки, в которых я кодирую, и имеет стандартные функции, которые Вы ожидали бы от IDE.

18
ответ дан Steve M 23 November 2019 в 04:36
поделиться

Просто быстрое продолжает для этого вопроса...

Это был месяц, с тех пор как я начал использовать Vim в качестве своего основного инструмента 'GUI' для программирования C++ в Linux. Сначала кривая обучения была действительно немного крута, но через некоторое время и с правильными включенными опциями и сценарии, работающие , я действительно приобрел навык ее!

я люблю путь, как можно сформировать Vim к комплекту потребности; просто добавьте/измените , ключевые отображения и Vim превращены в очень продуктивный 'IDE'.

набор инструментальных средств, чтобы создать и скомпилировать программу C++ на Linux также действительно интуитивен. сделайте и g ++ эти инструменты, которые Вы будете использовать.

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

Так любому, кто или искал хороший IDE C++ в Linux, точно так же, как я был, Ваш лучший выбор кладет со стандартными доступными инструментами в самом Linux (Vim, g ++, ddd), и необходимо действительно, по крайней мере, попытаться еще использовать их перед поиском sonething...

Наконец, что не менее важно, я действительно хочу благодарить konrad за его ответ здесь, Это действительно помогло мне найти свой путь в среде разработки Linux, спасибо!

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

18
ответ дан 3 revs, 2 users 63% 23 November 2019 в 04:36
поделиться

Я ранее использовал Окончательный ++ IDE, и это довольно хорошо.

5
ответ дан Hernán 23 November 2019 в 04:36
поделиться

Если Вам нравится Eclipse за Java, я предлагаю CDT Eclipse. Несмотря на C/C++ поддержка не так мощна, как для Java, это все еще предлагает большинство функций. Это имеет хорошую функцию под названием Управляемый Проект, который делает работу с проектами C/C++ легче, если у Вас нет опыта с Make-файлами. Но можно все еще использовать Make-файлы. Я делаю C и кодирование Java, и я действительно доволен CDT. Я разрабатываю встроенное микропрограммное обеспечение для встроенного устройства в C и приложения в Java, который говорит с этим устройством и действительно хорош использовать ту же среду для обоих. Я предполагаю, что это, вероятно, делает меня более продуктивным.

10
ответ дан jassuncao 23 November 2019 в 04:36
поделиться

Мне вполне нравится Окончательный ++ IDE. Это имеет некоторые функции, которые были разработаны для использования с их собственной библиотекой (который, BTW, вполне хороший инструментарий, если Вы не хотите покупать или на GTK + или на QT), но это работает отлично с общими проектами C++. Это обеспечивает достойное завершение кода, хорошую окраску синтаксиса, интегрированную отладку и все другие функции самая современная поддержка IDE.

7
ответ дан 2 revs, 2 users 86% 23 November 2019 в 04:36
поделиться

Я действительно предлагаю codeblocks. Это не столь тяжело как Eclipse, и это имеет поддержку проекта Visual Studio.

7
ответ дан 2 revs, 2 users 75% 23 November 2019 в 04:36
поделиться

Я слышу, что Anjuta является довольно гладким для пользователей Gnome. Я играл немного с KDevelop, и это хорошо, но вид недостатка featurewise. Код:: Блоки также очень перспективны, и мне нравится этот одно лучшее.

5
ответ дан wvdschel 23 November 2019 в 04:36
поделиться

Версия 12 Studio Sun является бесплатной загрузкой (СВОБОДНАЯ и заплаченная доступная поддержка) - http://developers.sun.com/sunstudio/downloads/thankyou.jsp?submit=%A0FREE+Download%A0%BB%A0 .

я уверен, что у Вас есть завершение кода и отлаживающий поддержку включая сменную поддержку в этом IDE.

Studio Sun доступен для Linux, а также Соляриса. форумы: http://developers.sun.com/sunstudio/community/forums/index.jsp . Studio Sun форумы Linux: http://forum.sun.com/forum.jspa?forumID=855

я буду стремиться услышать Вашу обратную связь на этом инструменте.

BR,
~A

5
ответ дан anjanb 23 November 2019 в 04:36
поделиться
  1. Код:: Блоки
  2. Eclipse CDT

Скоро, Вы найдете, что IDE недостаточно, и необходимо будет изучить набор инструментальных средств GCC так или иначе (который не трудно, по крайней мере, изучает основной функциональности). Но никакой вред в сокращении переходной боли с IDE, IMO.

75
ответ дан Imran 23 November 2019 в 04:36
поделиться

geany я рекомендую

5
ответ дан 2 revs, 2 users 67% 23 November 2019 в 04:36
поделиться

Я рекомендую вам прочитать Искусство программирования в UNIX .

15
ответ дан 23 November 2019 в 04:36
поделиться

SlickEdit. Я использую и люблю SlickEdit с 2005 года как в Windows, так и в Linux. У меня также есть опыт работы в Visual Studio (5, 6, 2003, 2005) и только с Emacs и командной строкой. Я использую SlickEdit с внешними make-файлами, некоторые из моих товарищей по команде используют SlickEdit, другие используют Emacs / vi. Я не использую интегрированный отладчик, интегрированный контроль версий, интегрированную систему сборки: я обычно нахожу слишком большую интеграцию настоящей проблемой. SlickEdit надежен (очень мало ошибок), быстр и интуитивно понятен. Это как немецкая машина, машина водителя.

Последние версии SlickEdit, кажется, предлагают много функций, которые меня не интересуют. Я немного обеспокоен тем, что продукт в будущем станет раздутым и разбавленным. На данный момент (я использую V13.0) это здорово.

4
ответ дан 23 November 2019 в 04:36
поделиться

Мне больше всего нравится CodeLite 2.x IDE.

см .: http://www.codelite.org

Решение использовать CodeLite было основано на исследовании относительно следующей C ++ IDE для Linux:

  • Eclipse Galileo с подключаемым модулем CDT
  • NetBeans 6.7 (который также является базой для SunStudio IDE)
  • KDevelop4
  • CodeBlocks 8.02
  • CodeLite 2.x

] В конце концов я решил использовать CodeLite 2.x .

Ниже я перечислил некоторые плюсы и минусы упомянутых C ++ IDE. Обратите внимание, что это отражает только мое личное мнение!

РЕДАКТИРОВАТЬ : как жаль, что SOF не поддерживает таблицы, поэтому я должен писать в параграфах ...

Eclipse Galileo с подключаемым модулем CDT

] Плюсы:

  • разумно быстро
  • также поддерживает Java, Perl (с EPI Плагин C)
  • широко используется и поддерживается
  • , также доступен для других версий ОС (Windows, MacOS, Solaris, AIX (?))

Минусы:

  • Графический интерфейс очень запутанный и несколько непоследовательный - не очень интуитивно понятный вообще
  • тяжелый вес
  • Поддерживает только CVS (AFAIK)

NetBeans 6.7 (обратите внимание, что это также основа для SunStudio IDE)

Плюсы:

  • один из самых интуитивно понятных Графический интерфейс, который я когда-либо видел
  • , также поддерживает Java, Python, Ruby
  • интегрирует CVS, SVN, Mercurial
  • , широко используемый и хорошо поддерживаемый
  • , также доступный для других версий ОС (Windows, MacOS, Solaris)

] Минусы:

  • очень медленный
  • тяжелый вес
  • использует пробелы для отступов, что не является моей политикой в ​​моей работе. Я уверен, что это можно настроить, но я не мог понять, как это сделать

KDevelop4 (примечание: я не особо много его тестировал)

Плюсы: это важно для меня, потому что мне приходится использовать его на работе)

  • нет поддержки Java, Perl, Python (было бы неплохо)
  • 86
    ответ дан 23 November 2019 в 04:36
    поделиться

    make + vim + gdb = одна отличная IDE

    8
    ответ дан 23 November 2019 в 04:36
    поделиться

    JAMA - матричная библиотека на Java. Он очень прост в использовании.

    Кроме того, Colt имеет параллельную версию.

    -121--3853850-

    как насчет затмения с помощью linuxtools ?

    -121--3026371-

    Возможно, проект Linux Tools Project для Eclipse может удовлетворить ваши потребности?

    Проект Linux Tools направлен на то, чтобы предоставить разработчикам Linux полнофункциональную среду C и C++. Мы развиваем функции редактирования и отладки исходного кода CDT и интегрируем популярные инструменты разработки, такие как GNU Autotools, Valgrind, OProfile, RPM, SystemTap, GCov, GProf, LTTng и т.д. В число текущих проектов входят средства просмотра и анализаторы трассировки LTTng, редактор RPM в формате spec, интеграция сборки Autotools, средство анализа использования кучи Valgrind и средства профилирования вызовов OProfile.

    6
    ответ дан 23 November 2019 в 04:36
    поделиться

    Я также нахожусь в подобной ситуации.

    У меня было не так много объектов, как у пингбата, но потребовалось 15 секунд, чтобы получить с помощью "ANY hasParent.label = =" A '"

    Мне нужно использовать NSFetyREsultsController, поэтому я должен перестроить модель. Я сделал это, чтобы сохранить отношение «» ко многим «» в виде строкового свойства и создать предикат «» hasParent содержит% @ «».

    Урок, который я усвоил, заключается в том, что наличие предиката, что поперечная связь между многими имеет БОЛЬШОЕ влияние на производительность..

    -121--2645679-

    я приземлился здесь сегодня в поисках способа определить (через php), является ли конкретное изображение .png альфа-png -
    Ответ Дэвида Джонса указывает на правильное направление, действительно легко реализовать в php:

    file _ get _ contents , чтобы загрузить только этот 25 'байт (там, действительно!), и
    ord () , чтобы получить его значение ASCII, чтобы протестировать его (против' 6 'в моем случае)

    if(ord(file_get_contents($alpha_png_candidate, NULL, NULL, 25, 1)) == 6) {
      is_alpha_png_so_do_something();
      }
    

    на самом деле я нуждался в том, чтобы гарантировать обратное в пределах cms-user-generated-pages, чтобы заменить все alpha-png < img > тэгов на inline-block < spans > - файл alpha-png будет затем служить переменной для ms-проприетарного свойства css filter

    .alpha_png_span{
      filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(
        src='$alpha_png_candidate', sizingMethod='crop')
      }
    

    ... и все это работает, так что спасибо!

    паоло

    -121--3894504-

    Я использую Eclipse CDT и Qt Creator (для приложений Qt).

    Таковы мои предпочтения. Это очень наводящий вопрос, и есть столько ответов, сколько есть у разработчиков.:)

    5
    ответ дан 23 November 2019 в 04:36
    поделиться

    Для меня Ultimate ++ кажется лучшим решением для написания программы cross-os

    3
    ответ дан 23 November 2019 в 04:36
    поделиться

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

    И многое другое в серии vi / vim tips & tricks.

    3
    ответ дан 23 November 2019 в 04:36
    поделиться

    Короткий ответ: выбирайте любой "редактор", который вам нравится, затем используйте консоль GDB или простой GDB front end для отладки вашего приложения. Отладчики поставляются с причудливыми IDE, такими как Netbeans sucks для C/C++. Я использую Netbeans в качестве редактора, а Insight и консоль GDB в качестве отладчика.

    С Insight у вас есть красивый графический интерфейс и мощь GDB.

    Как только вы привыкнете к командам GDB, вы начнете любить его, поскольку сможете делать вещи, которые никогда не сможете сделать с помощью графического интерфейса. Вы можете использовать даже Python в качестве языка сценариев, если вы используете GDB 7 или более новую версию.

    Большинство людей здесь уделили больше внимания "редакторам" IDE. Однако, если вы разрабатываете большой проект на C/C++, вы легко можете потратить более 70% своего времени на "отладчики". Отладчики модных IDE отстают от Visual Studio как минимум на 10 лет. Например, Netbenas имеет очень похожие интерфейсы с Visual Studio. Но его отладчик имеет ряд недостатков по сравнению с Visual Studio.

    1. Очень медленно отображает даже массив с несколькими сотнями элементов
    2. Нет подсветки для измененного значения (По умолчанию, Visual Studio показывает измененные значения в окнах просмотра красным цветом)
    3. Очень ограниченные возможности по отображению памяти.
    4. Вы не можете изменить исходный код, а затем продолжить выполнение. Если для устранения ошибки требуется много времени, вы хотели бы изменить исходный код, применить изменения в реальном времени и продолжить запуск приложения.
    5. Вы не можете изменить "следующее утверждение" для запуска. В Visual Studio вы можете использовать "Set Next Statement", чтобы изменить способ запуска вашего приложения. Хотя эта функция может привести к краху вашего приложения при неправильном использовании, но она сэкономит вам много времени. Например, если вы обнаружили, что состояние вашего приложения некорректно, но вы не знаете, что вызвало проблемы, вы можете захотеть повторно запустить определенную область ваших исходных кодов, не перезапуская приложение.
    6. Нет встроенной поддержки STL, таких как вектор, список, deque, map и т.д.
    7. Нет точек наблюдения. Эта функция необходима, когда вам нужно остановить приложение в момент изменения переменной. Компьютеры на базе Intel имеют аппаратные сторожевые точки, так что сторожевые точки не будут замедлять работу системы. На поиск труднонаходимых ошибок без использования сторожевых точек может уйти много часов. "Visual Studio" называет "сторожевой указатель" "точкой разрыва данных".

    Список может быть намного длиннее.

    Я был настолько разочарован недостатками Netbeans или других подобных IDE, что начал изучать сам GDB. Я обнаружил, что сам GDB очень мощный. GDB не имеет всех "недостатков", упомянутых выше. На самом деле, GDB очень мощный, он даже лучше, чем Visual Studio во многих отношениях. Здесь я просто покажу вам очень простой пример.

    Например, у вас есть массив типа:

    struct IdAndValue
    {
      int ID;
      int value;
    };
    
    
    IdAndValue IdAndValues[1000];
    

    Когда ваше приложение останавливается, и вы хотите изучить данные в IdAndValues. Например, если вы хотите найти ординалы и значения в массиве для определенного "ID", вы можете создать скрипт вроде следующего:

    define PrintVal 
    set $i=0
    printf "ID = %d\n", $arg0
    while $i<1000
      if IdAndValues[$i].ID == $arg0
        printf "ordinal = %d, value = %d\n", $i, IdAndValues[$i].vaue
        set $i++
      end
    end
    end
    

    Вы можете использовать все переменные вашего приложения в текущем контексте, ваши собственные переменные (в нашем примере это $i), переданные аргументы (в нашем примере это $arg0) и все команды GDB (встроенные или определенные пользователем).

    Используйте PrintVal 1 из приглашения GDB для вывода значений для ID "1"

    Кстати, NetBeans действительно поставляется с консолью GDB, но использование консоли может привести к краху Netbeans. И я полагаю, именно поэтому консоль по умолчанию скрыта в NetBeans

    12
    ответ дан 23 November 2019 в 04:36
    поделиться

    Мне нравится SciTE как основной редактор для C++ / Python на Linux. Это имеет клавиатурные привязки, подобные VC, таким образом, Вы не должны повторно программировать пальцы вырезания и вклейки.

    я использую его вместе с Мерзавцем для управления исходным кодом и очень полезным 'мерзавцем grep' команда для поиска в Вашей кодовой базе.

    я играл с CDT Eclipse, но моя исходная кодовая база была к большому для него, и я провожу слишком много времени, ожидая на IDE. Если Ваш проект меньше, это может быть хорошо для Вас все же.

    2
    ответ дан Jeroen Dirks 23 November 2019 в 04:36
    поделиться

    Совет Konrad превосходен, и необходимо стать счастливо продуктивными в классической vi/cc/ld/db/make среде без слишком большой проблемы. Многие, многие студенты университета изучили этот набор инструментальных средств в течение класса 10-15 недель.

    Однако другая классическая среда должна пойти путем Emacs. Я не назвал бы его IDE, но это действительно интегрирует два важных средства разработки в редактора: вывод компилятора и отладчик. У Вас может быть он, архивируют Вас к строке в файле, соответствующем ошибке компилятора, и можно установить точки останова и использовать степпер от редактора.

    1
    ответ дан Please delete this account 23 November 2019 в 04:36
    поделиться

    Я рад, что Вы, кажется, разрабатываете его с энергией. Но я должен сказать, я немного мистифицирован о том, как Вы уже "действительно как Eclipse для Java", подразумевая, что Вы уже знакомы с тем, как это работает. В этом случае, почему Вы также не использовали бы его для C++? CDT отвечает каждому требованию, которое Вы упомянули.

    1
    ответ дан kbluck 23 November 2019 в 04:36
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: