C ++ IDE для Linux? [зачинено]


209

Я хочу розширити свої горизонти програмування до Linux. Важливий хороший, надійний базовий набір інструментів, а що є більш базовим, ніж IDE?

Я міг знайти такі теми ТА:

Я не шукаю легкої IDE. Якщо ІДЕ коштує грошей, то я за це заплачу, тому він не повинен бути безкоштовним.

Тоді моє запитання:

Що хорошого, програмування IDE на C ++ доступне для Linux?

Мінімальні вимоги є досить стандартними: підсвічування синтаксису, завершення коду (наприклад, intellisense або його аналог Eclipse) та інтегрована налагодження (наприклад, основні точки перерви).

Я сам це шукав, але їх так багато, що відокремити добро від рукоятки вручну майже неможливо, особливо для когось, як я, у якого мало досвіду кодування C ++ в Linux. Я знаю, що Eclipse підтримує C ++ , і мені дуже подобається ця IDE для Java, але чи корисна вона для C ++ і чи є щось краще?

Другий пост насправді має кілька хороших пропозицій, але те, що мені не вистачає, це те, що саме робить зафіксований IDE настільки хорошим для користувача, які його (не) переваги?

Можливо, моє запитання має бути таким:

Яку IDE ви пропонуєте (враховуючи свій досвід), і чому?


1
Це, я думаю, четверте питання "Яким IDE я повинен користуватися в Linux" через день-два.
Бен Коллінз

Можливо, варто подивитися на дату, до якої було задано це запитання ... або вкажіть тут новіші запитання
Sven

В останньому випуску Eclipse інтегрував eclipse.org/linuxtools у свою програму випуску - цей проект має на меті зробити Eclipse більш повноцінним C / C ++ IDE для Linux, інтегруючи специфічні для Linux інструменти.
Жан Хомінал

Відповіді:


259

Спочатку: плутанина

Коли я писав цю відповідь, я нещодавно перейшов з Visual Studio (з багаторічним досвідом) на Linux, і перше, що я зробив - це спробувати знайти розумний IDE. На той час це було неможливо: хорошого ІДЕ не існувало.

Богоявлення: UNIX - це IDE. Все це. 1

І тоді я зрозумів, що IDE в Linux - це командний рядок з його інструментами:

  • Спочатку ви встановите свою оболонку
    • Bash, у моєму випадку, але багато людей віддають перевагу
    • риба або
    • (Ой мій) Зш ;
  • і ваш редактор; виберіть свою отруту - і те, і інше - це найсучасніший:

Залежно від ваших потреб, тоді вам доведеться встановити і налаштувати кілька плагінів, щоб редактор працював добре (це одна дратівлива частина). Наприклад, більшість програмістів на Vim скористаються плагіном YouCompleteMe для розумного автозавершення.

Після цього оболонка - це ваш командний інтерфейс для взаємодії з різними інструментами - налагоджувачами (gdb), профілями (gprof, valgrind) тощо. Ви налаштовуєте своє середовище проекту / збирання за допомогою Make , CMake , SnakeMake або будь-якого з різних альтернативи. А ви керуєте своїм кодом за допомогою системи контролю версій (більшість людей використовує Git ). Ви також використовуєте tmux (раніше також екран) для мультиплексування (= думаю, декілька вікон / вкладок / панелей) і зберігаєте термінальний сеанс.

Справа в тому, що завдяки оболонці та декільком умовам написання інструментів всі вони інтегруються між собою . Таким чином оболонка Linux є справді інтегрованим середовищем розробки , повністю нарівні з іншими сучасними IDE. (Це не означає, що окремі IDE не мають функцій, яких може не вистачати в командному рядку, але обернено також.)

Кожному своє

Я не можу завищувати, наскільки добре функціонують вищезазначені робочі процеси, коли ви звикли. Але деякі люди просто віддають перевагу графічним редакторам, і за роки, коли ця відповідь була спочатку написана, Linux отримав набір відмінних графічних IDE для декількох різних мов програмування (але, наскільки я не знаю, для C ++). Постарайтеся спробувати їх, навіть якщо - як я - ви їх не використовуєте. Ось лише невеликий і упереджений вибір:

  • Для розробки Python існує PyCharm
  • Для R є RStudio
  • Для JavaScript і TypeScript є Visual Studio Code (який також є гарним всебічним редактором)
  • І нарешті, багато людей люблять редактор Sublime Text за загальне редагування коду.

Майте на увазі, що цей список ще далеко не повний.


1 Я вкрав цю назву з коментаря dsm.

2 Я тут посилався на Вім. І хоча звичайний Vim все ще більш ніж здатний, Neovim - це багатообіцяючий перезапуск, і він модернізував кілька старих бородавок.


223
я категорично не згоден. гідна ідея важлива незалежно від того, над чим ти працюєш. це різко збільшує продуктивність. Я використовую кодові блоки та виявляю, що повернутися до VI майже неможливо. Я кодував Mac, Win та Linux, і хоча я вважаю візуальну студію найкращою IDE, кодові блоки закриваються.
DavidG

35
Девіде, можливо, ви могли б детально розказати (власну відповідь…), що саме вам не вистачає в ланцюжку інструментів, яку я описав, що забезпечує IDE. Як я вже говорив, я виходив із сильного ІДЕ-фону, і моє підвищення продуктивності було точно зворотним.
Конрад Рудольф

48
Яку підтримку рефакторингу пропонує Vim? У Eclipse (який працює під Linux) я можу змінити ім'я будь-якого способу Java, який я бажаю, навіть якщо він називається в 300 місцях. Ви можете це легко зробити у Vim?
Quant_dev

25
quant_dev: для рефакторингу потрібний певний аналіз вихідного коду. Наскільки я знаю, жоден модуль VIM не робить цього, тому відповідь на ваше запитання - "ні". Це одна з причин віддавати перевагу IDE для мов, орієнтованих на IDE, таких як Java. Оскільки підтримка рефакторингу (тощо) для C ++ так чи інакше мінімальна (навіть в IDE), це не стосується C ++.
Конрад Рудольф

11
@hasen: о, але великі частини можуть . Наприклад, перейменування з урахуванням сфери застосування. І повірте, це велике . І Ecplise (наприклад) може заощадити багато роботи тут.
Конрад Рудольф

86

Мій особистий фаворит - IDE CodeLite 2.x.

див .: 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 .

Нижче я перерахував кілька плюсів і мінусів щодо згаданих С ++ IDE. Зауважте, що це відображає лише мою особисту думку!

EDIT : Шкода, що SOF не підтримує таблиці, тому я повинен писати в абзаци ...

Eclipse Galileo з плагіном CDT

Плюси:

  • розумний швидкий
  • також підтримує Java, Perl (із плагіном EPIC)
  • загальновживаний і доглянутий
  • також доступний для інших ароматів ОС (Windows, MacOS, Solaris, AIX (?))

Мінуси:

  • GUI дуже заплутаний і дещо непослідовний - зовсім не інтуїтивно зрозумілий
  • велика вага
  • Підтримує лише CVS (AFAIK)

NetBeans 6.7 (зауважте, що це також база для SunStudio IDE)

Плюси:

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

Мінуси:

  • надзвичайно повільно
  • велика вага
  • використовує пробіли для відступу, що не є політикою в моїй роботі. Я впевнений, що це можна налаштувати, але я не міг дізнатися, як це зробити

KDevelop4 (зауважте: я не дуже тестував на ньому)

Плюси:

  • зазвичай використовується в Linux
  • інтегрує CVS, SVN, Mercurial

Мінуси:

  • GUI виглядає дещо старомодно
  • велика вага
  • дуже специфічний для середовища KDE

CodeBlocks 8.02 (зверніть увагу: я не дуже тестував на ньому)

Плюси:

  • розумний швидкий

Мінуси:

  • GUI виглядає дещо старомодно (хоча він має гарний екран запуску)
  • шрифтів у редакторі дуже мало
  • деякі піктограми (наприклад, піктограми, пов’язані з налагодженням, починаючи / крокуючи) дуже малі
  • відсутність інтеграції управління джерелами

CodeLite 2.x (зверніть увагу: це мій особистий фаворит)

Плюси:

  • найкращий, сучасний і інтуїтивно зрозумілий графічний інтерфейс, який я бачив у Linux
  • легкий
  • розумний швидкий
  • інтегрує SVN
  • також доступний для інших ароматів ОС (Windows, MacOS, Solaris (?))

Мінуси:

  • відсутність інтеграції CVS (це важливо для мене, тому що я повинен використовувати це на роботі)
  • немає підтримки для Java, Perl, Python (було б непогано мати)

14
Eclispe має підтримку Hg, Git, SVN та інших за допомогою плагінів. А екрани запуску / сплеску висмоктують величезні кулі. Вони висмоктують ресурси і пропонують дуже мало користі. І вони зазвичай спливають перед тим, над чим я працюю, очікуючи завантаження програми. PortableApps і Eclipse повинні позбутися їх.
Кріс К

4
Codelite отримав той самий ярлик клавіатури, що і Visual Studio для налагодження, що робить його дуже зручним для візуальних наркоманів.
Суперкоптер Рауля

Тут може бити старого коня, але GUI затемнення IMO справді не має рівних. Так, спочатку важко вчитися, але це схоже на Vi, де продуктивність починає зростати після того, як ви піднялися на круту криву навчання. Щоб довести крапку, спробуйте натиснути Ctrl + 3 - одна з дуже приголомшливих особливостей IMO затемнення.
kizzx2

"Мінуси: використовує пробіли для відступу [...] Я впевнений, що це налаштовується, але я не міг дізнатися, як це зробити." Це показує, що ви насправді не використовували інструмент, інакше ви, зрештою, знайшли б варіант.
Йохан Буле

5
CodeLite дивовижний, як жування гумки дентиневого льоду. Це залишить свіжий і м'ятний смак у роті. Затьмарення, хоча і є характерним, також дає вам цю блювоту після смаку, коли ви його використовуєте. Я знаю, що це звучить по-дитячому, але це справді найкраща метафора для пояснення "почуття" їх використання. Я впевнений, що зі мною погодиться інші.
Дідьє А.

75
  1. Код :: Блоки
  2. Eclipse CDT

Незабаром ви виявите, що IDE недостатньо, і вам доведеться все-таки вивчити ланцюжок інструментів GCC (що не важко, принаймні вивчити основні функціональні можливості). Але немає шкоди для зменшення перехідного болю з ВІД, ІМО.


+1 для блоків коду та так, ви обов'язково захочете навчитися принаймні компілювати та запускати свої програми з оболонки, оскільки код :: блоки мають деякі прогалини.
Граф

Eclipse - це зовсім не легкий IMHO, Код :: Блоки ... просто
rubenvb

7
-1 для кодових блоків. -1 для затемнення. Вони обидва змінюють інтерфейс користувача під час налагодження. До моменту, коли початківець користувач зазвичай відчуває себе загубленим. Вони обидва не можуть налагодити вилку. Вони обоє мають неприємні проблеми з інтеграцією SVN / CVS. (Останній Eclipse в тандемі з Subclipse розбивається в Gnome станом на 28.04.11 і збивається кожні 10 хвилин) Налаштування контролю над джерелами - це кошмар, а інтеграція з цими IDE так само складна.
bleepzter

4
@bleepzter -1 для використання SVN / CVS для початку;)
OneOfOne

1
Mercurial, Git і Bazaar, які в будь-якому відношенні значно перевершують.
OneOfOne

66

Швидка відповідь, лише щоб додати трохи більше знань до цієї теми:
Ви обов'язково повинні перевірити NetBeans . Netbeans 6.7 має такі особливості:

  • C / C ++ Проекти та шаблони: Підтримує виділення синтаксису, автоматичне заповнення коду, автоматичне відступ.
  • Він має налагоджувач C / C ++
  • Підтримує конфігурації компілятора, менеджер конфігурацій та підтримку Makefile (за допомогою майстра).
  • Він має вікно класів, вікно користування та вікно навігації по файлу (або панель).
  • Перегляд розширення Macro , а також підказки .
  • Підтримка розвитку QT .

Я думаю, що це ідеальна (і набагато краща) заміна Visual Studio і дуже хороший інструмент для вивчення C / C ++.

Щасти!


2
Це також дуже добре для c ++. У нього найкращий мовний аналізатор.
Йохан Буле

1
Мені Netbeans сподобався набагато більше, ніж Eclipse для розробки c ++.
Томас Ленґстон

9
NetBeans - це набагато приємніше, ніж Eclipse, я дуже хочу, щоб більше людей почали це усвідомлювати.
Дідьє А.

1
Після тижнів боротьби з Eclipse я виявив це, перейшов на NetBeans і дякую! Він має приємніший інтерфейс, більш чуйний, інтуїтивний та настроюється. Збиває затьмарення руками вниз
Фредерік

1
Ще один голос тут, наскільки кращий NetBeans, ніж Eclipse. Він також має найкращу емуляцію Vim (як плагін), яку я коли-небудь використовував.
хоттон


32

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

Першим моїм джерелом були фактично сторінки інструментів man. Просто введіть

$ man toolname

у командному рядку ( $тут є частина підказки, а не введення).

Залежно від платформи вони досить добре написані і їх також можна знайти в Інтернеті. У разі makeя фактично прочитав повну документацію, яка зайняла кілька годин. Насправді, я не думаю, що це є необхідним або корисним у більшості випадків, але в моїх перших завданнях під Linux у мене було кілька спеціальних вимог, які вимагали складного makefile. Після написання файлу я передав його досвідченому колезі, який зробив незначні зміни та виправлення. Після цього я досить багато знав make.

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

Не намагайтеся освоїти всі бінутили одночасно, функцій занадто багато. Але отримайте загальний огляд, щоб ви знали, де шукати, коли в майбутньому щось потрібно. Однак ви повинні знати всі важливі параметри для g++та ld(інструмент посилання GCC, який викликається автоматично, за винятком випадків, коли явно запобігається).

Також мені цікаво, чи є у вас доповнення коду та підсвічування синтаксису під час кодування?

Підсвічування синтаксису: так, і набагато кращий, ніж Visual Studio. Код завершення: Так - іш . По-перше, я повинен визнати, що я не використовував завершення коду C ++ навіть у Visual Studio, оскільки (порівняно з VB та C #) він був недостатньо хорошим. Зараз я не використовую його часто, але, тим не менш, GVIM має підтримку вбудованого коду для C ++. У поєднанні з бібліотекою ctags та теґлістом, як теги, це майже IDE.

Власне, з мене почалася стаття Арміна Ронахера. Перш ніж прочитати текст, подивіться скріншоти в кінці його!

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

Так. Але це те саме для Visual Studio, чи не (я ніколи не використовував Whole Tomato)? Звичайно, підсвічування синтаксису покаже вам невідповідні дужки, але це приблизно все.

і як ви налагоджуєте (знову думаєте, точки прориву тощо)?

Я використовую, gdbщо є інструментом командного рядка. Існує також графічний інтерфейс, який називається DDD. gdbє сучасним інструментом налагодження і може робити все, що можна зробити в IDE. Єдине, що мене справді дратує, - це читати слід стека, тому що рядки не є відступними або відформатованими, тому дуже важко сканувати інформацію, коли ви використовуєте багато шаблонів (що я роблю). Але вони також захаращують стек стеження в IDE.

Як я вже говорив, я мав "задоволення" робити свої перші кроки на мові програмування Java, використовуючи блокнот Windows та компілятор Java-командного рядка в середній школі, і це було, .. привітний кошмар! звичайно, коли я міг порівняти це з іншими курсами програмування, які я мав тоді, де у нас були гідні IDE

Не варто навіть намагатися порівнювати сучасний повнофункціональний редактор на зразок Emacs або GVIM з Блокнотом. Блокнот - це прикрашений TextBoxелемент управління, і це дійсно має все значення. Крім того, робота в командному рядку - це зовсім інший досвід роботи в Linux та Windows. Windows cmd.exeсильно каліка. PowerShell набагато краще.

/ EDIT: Я мушу чітко зазначити, що GVIM має редагування вкладок (як у перегляді на вкладках, а не вкладках vs-space)! Знадобилося мені віки, щоб знайти їх, хоча вони зовсім не приховані. Просто відкрийте :tabeзамість простого :eпід час відкриття файлу або створення нового, а GVIM створить нову вкладку. Перемикання між вкладками може здійснюватися за допомогою курсору або декількох різних ярликів (залежно від платформи). Ключ gt(тип g, потім tв командному режимі) повинен працювати скрізь, і переходить на наступну вкладку, або вкладку ні. n, якщо було вказано число Введіть, :help gtщоб отримати додаткову допомогу.


@confuzatron: Ні, я використовую gdb з кількох причин. Найголовніше, що я зазвичай працюю без запуску X-сервера. Крім того, мені трохи незручно з приводу того, що DDD не бачив жодного оновлення протягом досить тривалого часу. З іншого боку, право власності на проект щойно змінилося, і, здається, зміни відбудуться.
Конрад Рудольф

Дякуємо за інформацію про вкладку wrt gvim, ніколи не нове, що :)
Letholdrus

VS2010 виділяє синтаксичні помилки без компіляції.
Candy Chiu

@Candy правда, VS2010 змінив багато речей у цьому плані та додав розширені функції для складання фону. Але gvim також додав багато функцій через плагіни. Зокрема, ви, ймовірно, можете отримати підсвічування синтаксису без компіляції через clang_completeплагін. Ця відповідь є з 2009 року, а деякі частини застаріли. Але відбулися вдосконалення з усіх боків, так що це більш-менш вирівняється.
Конрад Рудольф

25

Не повторювати відповіді, але я думаю, що можу додати трохи більше.

Slickedit - відмінна IDE.

Він добре підтримує великі бази кодів, не сповільнюючи і не витрачаючи весь свій час на індексацію. (Це проблема, яку я мав із cdt eclipse). Швидкість Slickedit - це, мабуть, найприємніше в цьому насправді.
Завершення коду працює добре, і існує велика кількість варіантів таких речей, як автоматичне форматування, прикраса та рефакторинг.
У нього є інтегрована налагодження.
Він має підтримку плагінів і створює їх досить активне співтовариство.
Теоретично ви повинні вміти добре інтегруватися з людьми, які роблять традиційні файли makefile, оскільки це дозволяє створювати проект безпосередньо з одного, але це не спрацювало так гладко, як мені б хотілося, коли я спробував це.
Окрім Linux, існують версії для Mac та Windows, якщо вони потрібні.


23

Як колишній хлопець UNIX, я завжди використовую Emacs. Але це має досить круту і довгу криву навчання, тому я не впевнений, що можу порекомендувати його новачкам.

Дійсно не існує "хорошого" IDE для Linux. Затемнення не дуже добре для C / C ++ (CDT покращується, але поки не дуже корисний). В інших відсутні всі функції, які ви будете шукати.

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


Eclipse CDT "ще не дуже корисний?" Розробка може бути корисною. Я вважаю це надзвичайно корисним (і простим у використанні).
Джон Цвінк

"ще не дуже корисно": автозаповнення часто не працює, навігація до декларацій або використання функцій не працює, виділення синтаксису не завжди працює, рефакторинг не працює і т. д. Це трохи краще, ніж використовувати vi. Користувацький інтерфейс GDB - єдине, що робить його взагалі вартим використання - IMHO.
Крістофер Джонсон

Я не дуже намагався рефакторинг з CDT, але інші речі, здається, працюють. Зауважу, що я запускаю Eclipse з деякими досить великими параметрами конфігурації використання максимальної пам'яті (у мене 8-12 ГБ оперативної пам’яті), але це здається прекрасним.
Джон Цвінк

Востаннє, коли я спробував Eclipse CDT, синтаксичний / семантичний аналізатор для автоматичного завершення змусив весь IDE заморожуватись на 8 секунд щоразу, коли його викликали. Це зробило всю функцію марною. Я не можу повірити, що річ не протікала у власній нитці. Це було два роки тому, тому, сподіваємось, це тепер виправлено. (правда?)

Я вважаю CDT приголомшливим для моїх набігів на QT та Boost. У Windows з Mingw це проблеми, але в належному середовищі Posix автоматичне завершення працює чудово! Навігація до декларацій насправді є однією яскравою діркою. Але враховуючи, що C ++ може мати кілька однакових декларацій, я не здивований. Це важче вирішити, ніж у Java.
Кріс К

18

Checkout Netbeans, це написано на Java, тому у вас буде те саме середовище незалежно від вашої ОС, і вона підтримує набагато більше, ніж просто C ++.

Я не збираюся вас переконувати, бо думаю, що ІДЕ може бути дуже особистим вибором. Для мене це покращує мою продуктивність завдяки швидкій підтримці мов, які я кодую, і має стандартні функції, яких ви очікували від IDE.


5
Я просто можу додати свій +1 до цього. netbeans має найкращий аналізатор мови c ++, який я бачив у ідеї; б'є cdtli's cdt.
Йохан Буле

18

Тільки швидке спостереження за цим питанням ...

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

Мені подобається, як ти можеш сформувати Vim відповідно до своїх потреб; просто додайте / змініть відображення ключів, і Vim перетвориться на високопродуктивний "IDE".

Інструментальна мережа для створення та компіляції програми C ++ на Linux також є дуже інтуїтивно зрозумілою. make і g ++ - це інструменти, які ви будете використовувати.

Однак відладчик ddd насправді не такий хороший, але, можливо, це тому, що я не мав часу правильно його опанувати.

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

І останнє, але не менш важливе, я дуже хочу подякувати Konrad за його відповідь тут. Це дійсно допомогло мені знайти свій шлях у середовищі розробки Linux, дякую!

Я також не закриваю це питання, тому люди все ще можуть відреагувати або, можливо, навіть додати нові пропозиції чи доповнення до вже справді приємних відповідей ...


Чи можете ви змусити функції IntelliSense-ish працювати у Vim + ctags? Насправді не просто автоматичне заповнення, а залежна від контексту інформація, наприклад, список параметрів для функції тощо?
kizzx2

@ kizzx2: Так , є багато варіантів .
Фред Нурк

15

Рекомендую прочитати програму The Art Of UNIX . Це налаштує ваш розум на використання середовища як IDE.


12

Коротша відповідь: виберіть потрібний «редактор», а потім скористайтеся консоллю GDB або простою передньою частиною GDB для налагодження програми. Налагоджувачі поставляються з фантазійними IDE, такими як Netbeans смоктає для C / C ++. Я використовую Netbeans в якості мого редактора, а консоль Insight і GDB - як налагоджувач.

З розумінням, ви маєте приємний графічний інтерфейс та потужність GDB.

Як тільки ти звикнеш до команд GDB, ти почнеш любити це, оскільки ти можеш робити речі, які ти ніколи не зможеш зробити за допомогою GUI. Ви навіть можете використовувати Python як мову скрипта, якщо ви використовуєте GDB 7 або новішу версію.

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

  1. Дуже повільно відображати навіть масив із лише кількома сотнями елементів
  2. Немає виділення зміненого значення (за замовчуванням візуальна студія показує змінені значення у вікнах годин червоним кольором)
  3. Дуже обмежена здатність показу пам'яті.
  4. Ви не можете змінити вихідний код, а потім продовжуйте запускати. Якщо помилка потребує тривалого часу, ви хочете змінити джерело та застосувати зміни в прямому ефірі та продовжити запуск програми.
  5. Ви не можете змінити "наступне твердження" для запуску. У Visual Studio ви можете використовувати "Встановити наступну заяву", щоб змінити спосіб роботи програми. Хоча ця функція може зламати вашу програму при неправильному використанні, але це заощадить вам багато часу. Наприклад, якщо ви виявили, що стан вашої заявки невірний, але ви не знаєте, що спричинило проблеми, можливо, вам захочеться повторно відновити певну область вихідних кодів без перезавантаження програми.
  6. Немає вбудованої підтримки для STL, такої як вектор, список, deque та карта тощо.
  7. Немає сторожових точок. Вам потрібно мати цю функцію, коли вам потрібно зупинити додаток прямо в точці, коли змінна змінна. На комп’ютерах, що базуються на Intel, є апаратні пункти спостереження, щоб точки спостереження не сповільнювали вашу систему. Може знадобитися багато годин, щоб знайти деякі важко знайти помилки, не використовуючи точки спостереження. "Visual Studio" називає "покажчик годинника" "Data BreakPoint".

Список може бути набагато довшим.

Мене так розчарували недоліки Netbeans або інших подібних IDE, що я почав сам вивчати GDB. Я виявив, що самі GDB дуже потужні. У GDB немає всіх згаданих вище "недоліків". Власне, GDB дуже потужний, він навіть кращий, ніж Visual Studio у багатьох аспектах. Тут я лише показую вам дуже простий приклад.

Наприклад, у вас є масив типу:

struct IdAndValue
{
  int ID;
  int value;
};


IdAndValue IdAndValues[1000];

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

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 для друку значень для ідентифікатора "1"

До речі, NetBeans постачається з консоллю GDB, але, використовуючи консоль, ви можете зламати Netbeans. І я вважаю, що тому консоль за замовчуванням прихована в NetBeans


Гарна думка. Але, на жаль, GDB має надзвичайно круту криву навчання. Я використовую його вже багато років, і я все ще ніколи не використовував макроси, і (хоча я знаю, що це можливо через макроси!) Будь-який код STL, який я кидаю, не може бути налагоджений краще, ніж у сучасних IDE.
Конрад Рудольф

Я витратив 2 дні на освоєння більшості команд в GDB. Коли ви дізнаєтесь про сильну потужність GBD, ви ніколи не озирніться. Це заощадить вам багато часу, коли ви виправите важко знайдені помилки.
Чарльз Чжан

11

Я використовую " Geany " знайдений хороший поки що, його швидкий і легкий IDE.

Серед особливостей Geany :

  • Складання коду
  • Збереження сесії
  • Основні функції IDE, такі як підсвічування синтаксису, вкладки, автоматичне відступ та заповнення коду
  • Просте управління проектами
  • Побудувати систему
  • Вибір кольору (дивно зручно під час веб-розробки)
  • Вбудована емуляція терміналу
  • Підкажіть поради
  • Списки символів
  • Автоматичне завершення загальних конструкцій (таких, як, якщо, інакше, поки і т.д.)

10

Якщо вам подобається Eclipse для Java, я пропоную Eclipse CDT. Незважаючи на те, що підтримка C / C ++ не така потужна, як для Java, вона все ще пропонує більшість функцій. Він має приємну функцію під назвою Project Project, яка полегшує роботу з проектами C / C ++, якщо у вас немає досвіду роботи з Makefiles. Але ви все одно можете використовувати Makefiles. Я роблю кодування на C та Java, і я дуже задоволений CDT. Я розробляю прошивку для вбудованого пристрою в C та програми на Java, яка спілкується з цим пристроєм, і мені дуже приємно використовувати те саме середовище для обох. Я думаю, це, мабуть, робить мене більш продуктивним.


9

Мені подобається, як люди повністю пропускають запит в оригінальному запитанні на IDE. Linux НЕ є IDE. Ось тільки не те, що означають ці слова. Я навчився c і c ++, використовуючи vi і gcc і робити, і я не кажу, що вони не є адекватними інструментами, але вони НЕ ІДЕ. Навіть якщо ви користуєтеся більш досконалими інструментами, такими як vim чи emacs, або будь-яким вигадливим редактором, який ви хочете, введення команд у командному рядку не є IDE.

Крім того, ви всі знаєте, що існує як частина візуальної студії? Ідея про те, що IDE "обмежує", є просто нерозумною, якщо ви можете використовувати IDE для прискорення деяких речей, але все ще в змозі повернутися до даних командного рядка, коли це необхідно.

Все, що було сказано, я б запропонував, як і декілька вище, спробувати блоки блоків. Він отримав гідне підсвічування коду, досить легкий спосіб створити проект, кодувати його, запустити його тощо, що є ядром справжнього IDE, і здається досить стабільним. Налагодження відстій ... Я ніколи не бачив гідного інтерактивного налагоджувача в будь-якому варіанті Linux / Unix. gdb це не так. Якщо ви звикли до налагодження стилю візуальної студії, вам майже не пощастило.

У будь-якому разі, я піду пакую свої речі, я знаю, що натовп Linux, який базується лише на один погляд, закричить це і в найкоротші терміни вивезе мене з міста.


Ти правий. Це не IDE, як ми його знаємо. Однак цікаво, що за цю відповідь проголосував ОП! Прибивання моїх кольорів до щогли: я фанат командних рядків.
ScrollerBlaster

Нарешті, хтось має мозок ... Я думаю, що інші просто кодують тривіальні речі, якщо вони можуть зробити все з emacs / vim.
Піппо


7

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


Оце Так! Щодо скріншотів, які справді виглядають дивовижно! Я обов'язково спробую. Чи знаєте ви, чи треба за це платити? (Це не зовсім зрозуміло на веб-сайті Ultimate ++)

Ні, це безкоштовно, як у "промові", "пиві" та "їзді". Вони навіть досить відкриті щодо прийняття патчів, і випускають дуже часто, тому це так само відкрито, як це стає :)
dguaraglia


6

Можливо, Проект інструментів Linux для Eclipse міг би задовольнити ваші потреби?

Проект "Інструменти Linux" має на меті запропонувати розробникам Linux повнофункціональний ID C і C ++. Ми ґрунтуємось на особливостях редагування та налагодження джерел CDT та інтегруємо популярні інструменти для нашої розробки, такі як GNU Autotools, Valgrind, OProfile, RPM, SystemTap, GCov, GProf, LTTng тощо. Поточні проекти включають переглядачі та аналізатори слідів LTTng, RPM .spec редактор, інтеграція побудови автоінструментів, інструмент аналізу використання купівлі Valgrind та інструменти профілювання викликів OProfile.


6

У Linux існує безліч IDE:

На мій досвід, найціннішими є Eclipse і Qt Creator . Обидва надають усі "стандартні" функції (тобто автодоповнення, виділення синтаксису, налагодження, інтеграція git). Варто зазначити, що Eclipse також забезпечує функцію рефакторингу, тоді як Qt Creator забезпечує інтеграцію з Valgrind та підтримку для розгортання на віддалених цілях.

Також комерційний CLion IDE здається непоганим (але я його широко не використовував).


5

Я чую, що Anjuta є досить привабливою для користувачів Gnome. Я трохи пограв у KDevelop, і це приємно, але щось не вистачало також. Код :: Блоки теж дуже перспективні, і мені це подобається найкраще.


5

Версія 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



5

І тоді я помітив, що це просто не так, як ти там працюєш *, і я викинув все, провів кілька днів, читаючи посібники, налаштував свою оболонку (bash), створив середовище GVIM, вивчив інструментарій GCC / binutils, make and gdb та жив щасливо колись.

В основному я погоджуюся, але проблема також полягає у сприйнятті: ми забуваємо, як важко було стати продуктивними в будь-якому обраному IDE (або іншому середовищі). Мені здається, що IDE (Visual Studio, NetBeans, Eclipse) надзвичайно громіздкий у стільки способів.

Як колишній хлопець UNIX, я завжди використовую Emacs. Але це має досить круту і довгу криву навчання, тому я не впевнений, що можу порекомендувати його новачкам.

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

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

Як я вже казав, я використовував GNU Emacs на ТПВ роками. І це завжди добре працювало з Visual Studio, поки я не "модернізувався" до 2008 року; тепер він іноді затримується на багато секунд, перш ніж оновити файли з диска. Основною причиною редагування у вікні VS є функція заповнення коду "Intellisense".



5

Хоча я використовую Vim, деякі мої колеги використовують SlickEdit, що виглядає досить непогано. Я не впевнений у інтегрованій налагодженні, тому що ми б не змогли це зробити на нашому конкретному проекті.

SlickEdit має хорошу підтримку для навігації по великих базах коду, з перехресними посиланнями та стрибками тегів. Звичайно, в ньому є основні елементи, такі як підсвічування синтаксису та доповнення коду.


5

Я використовую Eclipse CDT і Qt Creator (для додатків Qt).

Це мої вподобання. Це дуже навіювальне запитання, і відповідей стільки, скільки розробників. :)


4

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

Найновіші версії SlickEdit, здається, пропонують багато функцій, які мене не цікавлять, я трохи переживаю, що продукт в майбутньому стане роздутим і розрідженим. Наразі (я використовую V13.0) це чудово.



3

Якщо ви довго використовували vim, то насправді слід зробити це своїм IDE. Доступно багато адонів. Я знайшов декілька тих, що є досить корисними, і склав їх тут, ознайомтесь.

І багато іншого в серії vi / vim підказки та рекомендації.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.