C++ IDE для Linux?

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

Я мог найти эти ТАК темы:

Я не ищу IDE легкий. Если IDE стоит своих денег, я заплачу за нее, поэтому она не обязательно должна быть бесплатной.

Тогда мой вопрос:

What good, C++ programming IDE is available for Linux?

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

Я сам искал его, но их так много, что почти невозможно вручную отделить хорошее от плохого, особенно для кого-то вроде меня, у которого мало опыта программирования на C++ в Linux. Я знаю, что Eclipse поддерживает C++, и мне очень нравится эта IDE для Java, но хороша ли она для C++ и есть ли что-нибудь получше?

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

Может быть, мой вопрос должен быть таким:

What IDE do you propose (given your experiences), and why?

Это, я думаю, четвертый вопрос «Какую IDE мне следует использовать в Linux?» Через день или два.

Ben Collins 17.09.2008 23:57

Может быть, вам стоит посмотреть на дату, когда был задан этот вопрос ... или указать здесь новые вопросы

sven 19.09.2008 11:38

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

Jean Hominal 14.09.2010 18:48
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
209
3
998 853
45
Перейти к ответу Данный вопрос помечен как решенный

Ответы 45

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

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

Я просто могу добавить к этому свой +1. netbeans имеет лучший синтаксический анализатор языка C++, который я видел в ide; превосходит компакт-диск eclipse.

Johan Boulé 20.07.2010 19:36
Ответ принят как подходящий

Изначально: путаница

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

Прозрение: UNIX - это IDE. Все это.1

А потом я понял, что IDE в Linux - это командная строка со своими инструментами:

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

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

Как только это будет сделано, оболочка станет вашим командным интерфейсом для взаимодействия с различными инструментами - отладчиками (gdb), профилировщиками (gprof, valgrind) и т. д. Вы настраиваете среду своего проекта / сборки, используя Делать, CMake, SnakeMake или любой из различных альтернативы. И вы управляете своим кодом с помощью системы контроля версий (большинство людей используют Git). Вы также используете tmux (ранее также экран) для мультиплексирования (= думайте о нескольких окнах / вкладках / панелях) и сохранении сеанса терминала.

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

Каждому свое

Я не могу переоценить, насколько хорошо описанный выше рабочий процесс работает после того, как вы привыкнете. Но некоторые люди просто предпочитают графические редакторы, и за годы, прошедшие с момента написания этого ответа, в Linux появился набор отличных графических IDE для нескольких разных языков программирования (но не для C++, насколько мне известно). Попробуйте, даже если - как я - вы их не используете. Вот лишь небольшой и необъективный выбор:

Имейте в виду, что этот список далеко не полный.


1 Я украл это название из комментария dsm.

2 Здесь я имел в виду Vim. И хотя простой Vim по-прежнему более чем способен, Neovim - многообещающий перезапуск, который модернизировал несколько старых бородавок.

Точно то же самое случилось со мной 3 года назад.

Nemanja Trifunovic 20.10.2008 21:43

я категорически не согласен. достойный иде важен независимо от того, над чем вы работаете. это резко увеличивает производительность. Я использую кодовые блоки и считаю, что вернуться к VI практически невозможно. Я писал код на Mac, Win и Linux, и хотя я считаю, что Visual Studio - лучшая среда разработки, кодовые блоки мне очень близки.

DavidG 21.10.2008 21:40

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

Konrad Rudolph 22.10.2008 13:31

Проблема в Linux всегда. Играйте сами, и отношение к коммерческим программам просто ужасное ....

Friedrich 15.03.2009 09:42

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

Parker Coates 08.05.2009 22:51

Какую поддержку рефакторинга предлагает Vim? В Eclipse (который работает под Linux) я могу изменить имя любого метода Java, который захочу, даже если он вызывается в 300 местах. Сможете ли вы сделать это легко в Vim?

quant_dev 10.06.2009 13:13

Quant_dev: для рефакторинга необходимо каким-то образом проанализировать исходный код. Насколько мне известно, никакие модули VIM этого не делают, поэтому ответ на ваш вопрос - «нет». Это одна из причин предпочесть IDE для языков, ориентированных на IDE, таких как Java. Поскольку поддержка рефакторинга (и т. д.) Для C++ в любом случае настолько минимальна (даже в IDE), это не относится к C++.

Konrad Rudolph 10.06.2009 17:56

«Это одна из причин, по которой следует предпочесть IDE для языков, ориентированных на IDE, таких как Java.» Скорее, для языков с контекстно-свободной грамматикой и без препроцессора :) Вы понимаете, но даже C++ может использовать какую-то поддержку рефакторинга. MS Visual C++ по крайней мере может вести меня от объявления к определению и обеспечивает завершение кода. Можно мне это в Vim?

quant_dev 11.06.2009 00:15

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

Konrad Rudolph 11.06.2009 10:20

Quant_dev: Завершение синтаксиса C++: vim.org/scripts/script.php?script_id=527

Konrad Rudolph 11.06.2009 17:53

Конрад Рудольф: Пожалуйста, не комментируйте вещи, которыми вы никогда не пользовались. В описании сценария прямо сказано «игнорирование текущей области».

wbkang 30.08.2009 07:41

@wbkang: На что именно вы жалуетесь? Если бы вы читали мой вопрос по этому поводу (stackoverflow.com/questions/1115876/autocompletion-in-vim), вы бы знали, что я нет удовлетворен CppComplete (и, что я его использовал). Но для некоторых это работает достаточно хорошо, так что стоит опубликовать здесь, не так ли?

Konrad Rudolph 30.08.2009 11:22

начните с vi и переходите к затмению, когда понимаете, что происходит за кулисами.

Rohit Banga 07.10.2009 16:12

Слишком легкие изменения побуждают вносить больше изменений.

ony 29.03.2010 22:50

@quant_dev: Поддержка рефакторинга в Linux исходит от вашего мозга, я думаю, он может работать лучше, чем что-либо автоматизированное?

Grant Paul 05.04.2010 03:32

Мой мозг слишком хорош, чтобы тратить его на такие тривиальные вещи.

quant_dev 07.04.2010 23:04

@quant, вы можете найти и заменить свою java-функцию (в файле), используя: 1, $ s / function_name / replace_name / g. Если это не мощно, то "power" необходимо переопределить

rocknroll 28.04.2010 14:14

@rocknroll: простая замена текста в файле / проекте игнорирует объем, тип и то, является ли что-то комментарием. Если я изменю имя функции, я хочу изменить только те места, которые фактически вызывают функцию, а не те места, которые имеют тот же текст, что и имя функции, включая комментарии, переменные, другие функции в другой области и т. д.

Bill 21.06.2010 21:09

@Bill, @quant_dev: Рефакторинг редко связан с «переименованием переменных», это скорее сознательные усилия по реорганизации кода, и никакая IDE никогда не может с этим помочь, нельзя избежать использования своего мозга. Сказав это, java-люди в любом случае не склонны быть виммерами ..

hasen 07.07.2010 19:20

@hasen j - написание программ также сильно требует "мозгов", но никто не отвергает компиляторы и не просит разработчиков писать машинный код вручную. рефакторинг требует использования вашего мозга, чтобы решить, какую часть кода нужно реорганизовать и как; однако это не препятствует использованию надлежащих инструментов, чтобы гарантировать, что все соответствующие изменения внесены в любую часть исходного кода, на которую может повлиять рефакторинг кода.

Franci Penov 06.08.2010 21:38

Франси Пенов: Вы не поняли мой аргумент: рефакторинг нельзя автоматизировать, по той же причине, по которой нельзя автоматизировать программирование.

hasen 07.08.2010 04:56

@hasen: ох, но большая его часть может. Например, переименование с учетом области действия. И поверьте, это большой. И Ecplise (например) может сэкономить здесь много работы.

Konrad Rudolph 07.08.2010 12:11

Если вы хотите работать на платформе, вам нужно понимать, как работать на этой платформе. Для Unix / Linux все его мощные функции можно найти в терминале. Если вы привыкнете к этим инструментам, вы никогда не вернетесь в IDE.

Spike 31.12.2010 05:13

только один вопрос: нажимаете ли вы F5, чтобы проверить последнее изменение, или нажимаете Alt + F2, затем набираете gcc /.../myproject/program.cpp -DHAVE_CONFIG_H -L / ... libs -lsomelib && ld ...? Основная причина, по которой мне нужна IDE, заключается в следующем: когда я понимаю, что сделал ошибку, написав x [0] вместо x [i], я просто прекращаю отладку, редактирую эту строку и снова нажимаю F5 / F9 / F6, чтобы проверить это изменение.

Luka Ramishvili 28.04.2011 09:39

но я во всем согласен - я тоже недавно перешел с Visual Studio на Eclipse CDT и узнал об использовании gcc, Makefile, ld, binutils и т. д. просто потому, что я хотеть, чтобы знать, как его использовать.

Luka Ramishvili 28.04.2011 09:45

@Luke Edit-continue отладка никогда не работала для C++ даже в среде IDE. Я не знаю, действительно ли текущая версия Visual Studio поддерживает его во всех случаях. Ни Xcode, ни Eclipse этого не делают.

Konrad Rudolph 28.04.2011 16:28

@Konrad Мои два цента - если вы хотите иметь дело с переименованием в области видимости в Vim, тривиально выбрать строки внутри класса или функции и выполнить поиск / замену. (Vim позволяет делать это визуально с помощью 'V'.) Если это что-то вроде имени класса, имеющего глобальную область видимости, вы можете искать и заменять глобально. Это, в сочетании с встроенной поддержкой регулярных выражений для поиска в vi, очень удобно (если вы знаете, что делаете). Мощность такая же; просто вместо щелчка вы вводите несколько символов. На самом деле это просто личные предпочтения. @Luka Вот для чего нужны make-файлы - сохранять, строить, запускать.

jedd.ahyoung 19.05.2011 07:15

@ breakfastmeat317 Нет, это все еще фундаментально отличается от переименования идентификаторов, предлагаемых IDE, и значительно уступает ему. Разница в том, что IDE может находить все имена которые относятся к одному и тому же объекту и переименовывать только те, в масштабах проекта. В Vim нет способа приблизить это поведение. Например, хотя Vim позволяет вам выбирать область действия одного класса, одно и то же имя может относиться к разным сущностям в этом классе (например, скрытие имени с помощью локальных переменных) или его можно использовать в другой части проекта.

Konrad Rudolph 19.05.2011 12:19

Вот один плагин / скрипт vim, рекламирующий рефакторинг для C / C++: vim.org/scripts/script.php?script_id=2087

Alexander 19.05.2011 17:35

@Alexander Но этот плагин свободно признает, что нет анализирует код и, следовательно, не выполняет рефакторинга с учетом области видимости. Так что у него есть все упомянутые мною недостатки.

Konrad Rudolph 19.05.2011 18:00

@Konrad Rudolph Вся суть IDE в том, что она упрощает процесс разработки, объединяя все аспекты сборки / отладки и поддержки кода, управления дефектами и контроля версий в одном интегрированном пользовательском интерфейсе. Если бы я хотел узнать, как сделать свою жизнь несчастной, я бы определенно сделал то, что сделал ты. Оказывается, для Linux / Unix не существует достойных IDE. У них либо отсутствует интеграция с системой контроля версий, управление дефектами, либо требуются плагины, установка которых занимает 6 часов, с частичной поддержкой основных потребностей или без нее. Базовая отладка также является слабым местом. Я очень разочарован .. :( :( :(

bleepzter 03.11.2011 17:36

@bleepzter Я согласен с вашей точкой зрения об IDE. Но это является, что дает вам Unix. Как сказал dsm, Unix - это IDE, все этого. По сравнению с «традиционными» IDE, у нее есть недостаток в том, что ее труднее изучить, но она определенно имеет преимущества, заключающиеся в том, что она более мощный и, более продуктивная после того, как вы выучите основы. Упомянутые вами слабые места всегда зависят от ваших способностей, нет Unix. Отладка работает отлично и чрезвычайно эффективна благодаря возможности использования макросов. Интеграция системы управления версиями лучше всего в Windows.

Konrad Rudolph 03.11.2011 21:08

Да, UNIX - это IDE, но компоненты интегрированы недостаточно хорошо. Готовясь назвать UNIX IDE, я не вижу причин, по которым мы не должны называть Windows также IDE. В конце концов, в нем есть VIM, Powershell (не беспокойтесь, * sh там тоже работает) и множество компиляторов. Извините, что возвращаю вас к реальности, но: UNIX - это ОС, VIM - это редактор с множеством функций. Вы можете найти свой собственный рабочий процесс, используя только эти инструменты. Конечно, вместе с какой-нибудь системой сборки, компилятором и отладчиком. Но в конце концов, в Eclipse все это тесно интегрировано.

Philip 16.02.2012 15:53

Если вы используете максимум Eclipse, вам редко придется использовать * sh, grep и тому подобное. Более того, я хочу увидеть, как вы отлаживаете большую многопоточную программу на C++ с помощью VIM + gdb.

Philip 16.02.2012 15:56

@Philip «Если ты выйдешь из игры« Макс Затмение »» - да, но зачем мне это делать? Оболочка намного лучше. «Компоненты плохо интегрированы» - вы шутите. На сегодняшний день компоненты оболочки являются самой модульной и комбинируемой системой, с которой мне когда-либо приходилось работать. Не идеальный по большому счету, но очень сильно хороший, безусловно, намного более мощный, чем любая IDE.

Konrad Rudolph 16.02.2012 15:59

@KonradRudolph: Итак, вернемся к моему вопросу: как вам нравится находить ошибки в многопоточных программах на C++ с использованием оболочки? Или как вам 3-стороннее слияние с помощью оболочки? Или для некоторых исторических свидетельств: Perl развился из-за недостатков Shell, были созданы странные редакторы, такие как Sam и Acme, потому что * sh + VIM не лучше реальной IDE.

Philip 16.02.2012 19:39

@Philip Конечно, отладка многопоточных программ в gdb - отстой, но это особый недостаток конкретного инструмента. Это чистое совпадение, что другие отладчики могут делать это лучше, это не имеет ничего общего с их интеграцией в IDE. Что касается трехстороннего слияния, что плохого в использовании для этого vim? Или, если хотите, используйте графический инструмент. Никто против этого не возражает. Но зачем для этого нужна фиксированная IDE? Я не могу комментировать этих «странных редакторов», но они на самом деле не подчеркивают ваши аргументы в мою пользу.

Konrad Rudolph 16.02.2012 19:49

@Philip На самом деле, два момента о Сэме: он был разработан 30 лет назад. Как вы знаете, с тех пор оболочка, редакторы и другие инструменты претерпели изменения. Более того, в статье в Википедии говорится, что «Сэм следует классической модульной эстетике Unix», что очень в пользу моей первоначальной точки зрения.

Konrad Rudolph 16.02.2012 19:51

@KonradRudolph Учитывая, что IDE - не лучший способ разработки программного обеспечения в Linux, не могли бы вы упомянуть хороший учебник, охватывающий упомянутую выше базу знаний для разработчика, не имеющего образования в Linux?

ppp 17.02.2012 03:43

@KonradRudolph: Фактически Eclipse CDT использует gdb. (Как, вероятно, любой другой графический интерфейс отладки в Linux.) Благодаря красивому графическому интерфейсу намного проще отслеживать несколько потоков. Но если бы это был только графический интерфейс, можно было бы придерживаться интерфейса отладчика KDE или DDD. Но вот часть IDE: отладчик тесно интегрирован с редактором кода. В Java это зашло так далеко, что вы можете легко редактировать код во время работы вашей программы. Конечно, оболочка эволюционировала, но все же она слабо интегрирована в X.

Philip 17.02.2012 14:40

Я участвовал в двух отдельных проектах в двух разных компаниях, где через год или около того мы перешли от IDE, чтобы использовать исключительно вручную отредактированные make-файлы, и это было в Windows. Сегодня я все еще не пользуюсь такими IDE, как Eclipse. Основными причинами, по которым мы переключились, была автоматизация сборки «чистой комнаты» из системы управления версиями и, упрощающая массовую настройку параметров компилятора в проектах несколько. Это два очень важных требования, которые можно легко выполнить с помощью сценариев и файлов сборки, редактируемых вручную. По этим причинам я, вероятно, никогда не вернусь к IDE.

ScrollerBlaster 02.03.2012 03:01

@ScrollerBlaster Честно говоря, этот может должен выполняться в современной среде IDE (т.е. VS имеет полноценную автоматизированную систему сборки под названием MSBuild). Но гораздо проще использовать сценарии оболочки.

Konrad Rudolph 02.03.2012 03:28

Я бы хотел увидеть, как вы отлаживаете большой проект, используя только GDB. В VS так много функций, что вы, вероятно, не знаете, какие из них могут невероятно повысить вашу производительность. Я не говорю, что вы не можете достичь того же результата, используя make, gdb, valgrind, vi и т. д., Но это займет гораздо больше времени. Это даже мнение моего друга, который является фанатом Linux, который ежедневно использует Linux.

nosbor 13.11.2015 22:08

@ носбор у меня есть. И люди регулярно отлаживают ядро ​​Linux в gdb. Я думаю, вы серьезно недооцениваете мощь GDB. Да, кстати, я широко использовал Visual Studio, и мне она очень нравится для отладки. Я не пытаюсь утверждать, что он не мощный - он, вероятно, по-своему могущественен, как gdb, и определенно более удобен.

Konrad Rudolph 13.11.2015 22:44

рефакторинг? глупые новички lrn2regexp

MickLH 15.01.2016 07:55

@quant_dev: «Мой мозг слишком хорош, чтобы тратить его на такие тривиальные вещи» -> Вы знаете, что переименование вещей не является сутью рефакторинга? Суть в том, чтобы иметь тесты, а затем уметь делать причудливые вещи, такие как инверсия зависимостей, замена типов полиморфизмом, удаление среднего человека, все это: refactoring.com/catalog, сколько из этого ваша IDE автоматизирует? Опасность, которую я вижу в рефакторинге IDE, заключается в том, что люди, подобные вам, склонны думать, что рефакторинг - это просто переименование символов и преобразование переменных в параметры; вы ограничиваете себя.

Sebastian Mach 03.03.2016 13:51

Я полностью согласен со всем этим, только если программист не использует Visual Studio должным образом, иначе он найдет рай в VS ...

nosbor 11.04.2016 23:31

Проблема здесь в том, что IDE означает интегрированную среду разработки. Хотя можно назвать GNU / Linux, включая набор инструментов GNU, средой разработки, это не интегрированный в смысле пользовательского интерфейса, как в IDE.

Archimaredes 19.06.2016 17:59

@Archimaredes Почему это должно быть проблемой? Кроме того, на самом деле существует огромная степень интеграции, особенно в том, как был разработан POSIX. Современные IDE все еще пытаются скопировать этот основной принцип.

Konrad Rudolph 19.06.2016 18:01

Для C++ в наши дни kdevelop5 с его clang intellisense - отличный выбор для C++. Также есть eclipse cdt

Johannes Schaub - litb 03.11.2016 14:04
  1. Код :: Блоки
  2. Затмение CDT

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

+1 для кодовых блоков, и да, вы определенно захотите узнать, по крайней мере, как компилировать и запускать свои программы из оболочки, потому что code :: blocks имеет некоторые блимы.

Earlz 29.03.2010 22:14

Eclipse совсем не легкий ИМХО, Code :: Blocks ... просто

rubenvb 21.06.2010 19:10

... Code :: Blocks просто не может проанализировать язык C++

Johan Boulé 20.07.2010 19:38

-1 для кодовых блоков. -1 для затмения. Оба они меняют свой пользовательский интерфейс во время отладки. До такой степени, что начинающий пользователь обычно чувствует себя потерянным. Они оба не могут отлаживать вилку. У них обоих есть неприятные проблемы с интеграцией SVN / CVS. (Последняя версия Eclipse в тандеме с Subclipse не работает в Gnome 28 апреля 2011 года и вылетает каждые 10 минут). Настройка системы управления версиями - это кошмар, и интеграция с этими IDE столь же сложна.

bleepzter 29.04.2011 01:28

@bleepzter -1 для использования SVN / CVS для начала;)

OneOfOne 02.11.2011 12:05

@OneOfOne Какие у вас есть варианты для новичка в Linux? Я серьезно? Я пришел из мышления Enterprise Development, основанного на TFS / Sharepoint (иногда Source Gear Vault). Ну, я не могу запустить это в Linux, не так ли? И SVN, и CVS - отстой. И многие другие тоже.

bleepzter 03.11.2011 17:40

Mercurial, Git и Bazaar, которые значительно превосходят по всем параметрам.

OneOfOne 04.11.2011 08:40

Я думаю, что дешевле купить коммерческую IDE (типа CLion), потом узнать глюки Eclipse / CDT. Я только что установил последний Eclipse Mars + последний CDT и 50% функций форматирования и выделения кода, которые мне нужны, имеют глюки. Похоже, что в Eclipse вообще нет регрессионного тестирования.

Dzenly 01.11.2015 09:26

Кодовые блоки не позволяют вам правильно смотреть при отладке: достойная C++ IDE, отладчик, компилятор и codeStaticAnalyser должны при отладке позволять вам смотреть значения переменных, как если бы C++ был JavaScript (что очень круто с JavaScript, и многие динамические языки заключаются в том, что функция 'eval' сама по себе почти отладчик). Отладчик VisualC++ почти делает это, поэтому, на мой взгляд, он является предпочтительной IDE C++, в то время как codeblocks & gcc & gdb - нет. VisualC++ - почти хорошая причина для установки VMWare с Windows на вашем Linux.

reuns 08.11.2015 16:23

could you clarify a little bit more how it was for you, what you had to change. Maybe you could point me in the right direction by providing some links to the information you used.

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

$ man toolname

в командной строке ($ здесь является частью приглашения, а не вводом).

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

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

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

Also I'm curious, do you have code completion and syntax highlighting when you code?

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

На самом деле, то, что заставило меня начать, было статья от Армина Ронахера. Перед чтением текста посмотрите скриншоты в конце!

do you have to compile first before getting (syntax) errors?

Да. Но то же самое и с Visual Studio, не так ли (я никогда не использовал Whole Tomato)? Конечно, подсветка синтаксиса покажет вам несовпадающие скобки, но это все.

and how do you debug (again think breakpoints etc)?

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

Like I said, I had the 'pleasure' to set my first steps in the Java programming language using windows notepad and the command line java compiler in high school, and it was, .. wel a nightmare! certainly when I could compare it with other programming courses I had back then where we had decent IDE's

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

/ Обновлено: я должен прямо упомянуть, что В GVIM есть вкладки для редактирования (как при просмотре с вкладками, а не табуляции против пробелов)! Мне потребовались годы, чтобы найти их, хотя они совсем не спрятаны. Просто введите :tabe вместо обычного :e при открытии файла или создании нового, и GVIM создаст новую вкладку. Переключение между вкладками может осуществляться с помощью курсора или нескольких различных ярлыков (в зависимости от платформы). Ключ gt (введите g, затем t в командном режиме) должен работать везде и переходить на следующую вкладку или вкладку №. п, если был указан номер. Введите :help gt, чтобы получить дополнительную помощь.

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

Konrad Rudolph 05.11.2008 23:15

Спасибо за информацию о вкладке о gvim, никогда не ново :)

Letholdrus 22.07.2011 10:25

VS2010 выделяет синтаксические ошибки без компиляции.

Candy Chiu 20.10.2011 20:42

@Candy правда, VS2010 многое изменил в этом плане и добавил расширенные функции для фоновой компиляции. Но за это время gvim также добавил множество функций через плагины. В частности, теперь вы, вероятно, можете получить подсветку синтаксической ошибки без компиляции через плагин clang_complete. Это ответ 2009 года, и некоторые части устарели. Но со всех сторон были улучшения, так что все более или менее выравнивается.

Konrad Rudolph 21.10.2011 00:08

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

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

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

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

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

Eclipse CDT "еще не очень полезен?" Было бы полезно уточнить детали. Я считаю это чрезвычайно полезным (и простым в использовании).

John Zwinck 23.11.2009 03:03

«еще не очень полезно»: автозаполнение часто не работает, переход к объявлениям или использованию функций не работает, подсветка синтаксиса не всегда работает, рефакторинг не работает и т. д. Это немногим лучше, чем использование vi. Интерфейс интерфейса GDB - единственное, что делает его вообще стоящим, ИМХО.

Kristopher Johnson 23.11.2009 18:31

Я действительно не пробовал рефакторинг с CDT, но другие вещи, похоже, работают. Замечу, что я запускаю Eclipse с некоторыми довольно большими параметрами конфигурации максимального использования памяти (у меня 8-12 ГБ ОЗУ), но это кажется нормальным.

John Zwinck 24.11.2009 03:49

В прошлый раз, когда я попробовал Eclipse CDT, синтаксический анализатор семантики для автозаполнения заставлял всю среду IDE зависать на 8 секунд каждый раз, когда она вызывалась. Это сделало всю функцию бесполезной. Не могу поверить, что эта штука не работала в собственном потоке. Это было два года назад, так что, надеюсь, теперь это исправлено. (верно?)

Mads Elvheim 11.12.2009 22:45

Я считаю CDT отличным вариантом для моих набегов на QT и Boost. В Windows с Mingw есть проблемы, но в правильной среде Posix автозаполнение отлично работает! На самом деле переход к объявлениям - это единственная явная дыра. Но учитывая, что C++ может иметь несколько идентичных объявлений, я не удивлен. Эту проблему решить сложнее, чем в Java.

Chris K 29.03.2010 23:26

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

reuns 08.11.2015 16:33

@ user1952009 Множество "настоящих программ", содержащих более 10000 строк, было написано еще до того, как были изобретены IDE.

Kristopher Johnson 08.11.2015 17:22

тролль? очевидно, что вы почти не можете создавать программы без компьютера, даже если некоторые алгоритмы были написаны до компьютеров, которые даже были изобретены ... не троллите людей, я просто говорю, что в этом обсуждении не упоминается, что является наиболее важным: IDE призвана помочь кодированию, а не усложнять его. Современная среда IDE означает: хороший компилятор, дающий простые для понимания (и щелкающие) сообщения об ошибках + подсветка синтаксиса + автозавершение кода + отладчик (+ условные точки останова) + часы + функция eval (небольшой интерпретатор для часов + модификация часов) + анализатор кода выполнения / перфорации + ....

reuns 10.11.2015 00:25

и я забыл о поисковой системе IDE, которая ОЧЕНЬ важна для проектов с более чем 10000 строками.

reuns 10.11.2015 00:29

Я слышал, Анджута довольно хороша для пользователей Gnome. Я немного поиграл с KDevelop, и он хорош, но в нем не хватает функциональности. Code :: Blocks тоже очень многообещающий, и он мне нравится больше всего.

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

ух ты! Что касается скриншотов, это действительно потрясающе! Я обязательно попробую. Вы знаете, придется ли мне за это платить? (Это не совсем понятно на сайте Ultimate ++)

anon 12.12.2009 14:37

Нет, это бесплатно, как в словах «речь», «пиво» ​​и «поездка». Они даже довольно открыто относятся к принятию исправлений и очень часто выпускают их, так что это настолько открытый исходный код, насколько это возможно :)

dguaraglia 12.12.2009 18:53

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

Чтобы не повторять ответ, но я думаю, что могу добавить еще немного.

Slickedit - отличная IDE.

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

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

  • Проекты и шаблоны C / C++: поддерживает подсветку синтаксиса, автоматическое завершение кода, автоматический отступ.
  • Имеет отладчик C / C++.
  • Поддерживает конфигурации компилятора, Configuration Manager и поддержку Makefile (с Волшебник).
  • У него есть окно классов, окно использования и окно навигации по файлам (или панель).
  • Расширенный вид макроса, а также всплывающие подсказки.
  • Поддержка QT разработка.

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

Удачи!

Я никогда не использовал Netbeans для разработки на C++, но это отличная IDE для разработки на Java.

James McMahon 29.03.2010 22:09

Это также действительно хорошо для C++. У него лучший синтаксический анализатор языка.

Johan Boulé 20.07.2010 19:41

Мне нравится Netbeans намного больше, чем Eclipse для разработки на C++.

Thomas Langston 14.09.2010 18:49

NetBeans намного приятнее, чем Eclipse, я действительно хочу, чтобы больше людей начали это понимать.

Didier A. 24.02.2011 13:53

После нескольких недель борьбы с Eclipse я нашел это, переключился на NetBeans и Спасибо! У него более приятный интерфейс, он более отзывчивый, интуитивно понятный и настраиваемый. Beats Eclipse безоговорочно

Frederik 20.05.2011 19:37

Еще одно голосование за то, насколько NetBeans лучше Eclipse. Он также имеет лучшую эмуляцию Vim (как плагин), которую я когда-либо использовал.

thoughton 03.03.2012 20:09

"у него есть отладчик C++". вы уже обращались к отладчику VisualC++? Это действительно хорошо, почти так же хорошо, как отладчики динамических / скриптовых языков. в 2015 году, прилично, мы больше не можем отлаживать наши программы с помощью printf ..

reuns 08.11.2015 16:29

Я использовал Eclipse несколько месяцев, прежде чем отказался от него для NetBeans, и никогда не оглядывался назад.

siliconrockstar 19.12.2015 02:54

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

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

Что было бы хорошим учебным пособием для замены 10-15-недельного урока?

ppp 17.02.2012 03:45

Мне нравится НАУКА как базовый редактор для C++ / Python в Linux. Он имеет привязки клавиатуры, аналогичные VC, поэтому вам не нужно перепрограммировать пальцы для вырезания и вставки.

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

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

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,
~ А

Просто быстрый ответ на этот вопрос ...

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

Мне нравится, как вы можете настроить Vim в соответствии со своими потребностями; просто добавьте / измените ключевые сопоставления, и Vim превратится в высокопроизводительная «IDE».

Набор инструментов для создания и компиляции программы на C++ в Linux: также действительно интуитивно понятный. make и g ++ - это инструменты в, которые вы использовать.

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

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

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

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

Можете ли вы заставить функции IntelliSense работать в Vim + ctags? Не просто автозаполнение, а контекстно-зависимая информация, такая как список параметров для функции и т. д.?

kizzx2 19.07.2010 06:07

@ kizzx2: да, там находятся много опции.

Fred Nurk 07.06.2011 04:40

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

Eclipse C++ IDE лишена полезности по сравнению с Java-эквивалентом. Серьезно, это безнадежно. Все уловки с мускулами памяти, изученные в версии для Java, по необъяснимым причинам терпят неудачу в версии C++, делая вашу работу намного менее продуктивной. Как Супермен с криптонитом в нижнем белье.

richq 21.02.2009 00:34

why wouldn't you also use it for C++? CDT meets every requirement you've mentioned.

Сначала я не использовал eclipse, потому что не был уверен, что он одинаково хорошо дает мне средства разработки на C++ (эффективно). Кроме того, я был убежден, что для разработки на C++ в Linux должны быть лучшие, более специализированные инструменты:

and I really like that [eclipse] IDE for java, but is it any good for c++ and won't I miss out on something that is even better?

Я искренне верю, что, хотя некоторые инструменты (например, eclipse) хороши во многих вещах, лучше всего поискать и другие варианты (и я имею в виду не только для IDE, но в целом и даже в реальная жизнь). .
Как и в этом случае, vim действительно великолепен, и я бы пропустил его, если бы придерживался того, что уже знал.

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

Я вырос в Visual Studio и обнаружил, что относительно молодой Код :: Блоки мне очень хорошо знаком.

Раньше я использовал Ultimate ++ IDE, и она неплохая.

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

Я также использую его для проектов, не относящихся к Qt.

Chance 21.07.2011 18:43

Это мило. Я попробовал, и он мне очень нравится.

Tyler Long 18.12.2011 14:12

And then I noticed that this simply isn't how you work there*, and I threw everything out, spent a few days reading manuals, set up my shell (bash), set up a GVIM environment, learned the GCC/binutils toolchain, make and gdb and lived happily ever after.

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

As an old-time UNIX guy, I always use Emacs. But that has a pretty steep and long learning curve, so I'm not sure I can recommend it to newcomers.

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

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

Как я уже говорил, я много лет использовал GNU Emacs на MSW. И это всегда хорошо работало с Visual Studio, пока я не «обновился» до 2008 года; теперь иногда задерживает на много секунд перед обновлением файлов с диска. Основная причина редактирования в окне VS - функция завершения кода "Intellisense".

geany рекомендую

Рекомендую прочитать Искусство программирования UNIX. Это заставит вас использовать среду в качестве IDE.

Используйте Моно-разработка. Он очень похож на Visual Studio. Он работает кросс-платформенный и потрясающий !!

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

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

Моя любимая среда - 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 (с плагином E.P.I.C)
  • обычно используется и в хорошем состоянии
  • также доступно для других версий ОС (Windows, MacOS, Solaris, AIX (?))

Минусы:

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

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

Плюсы:

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

Минусы:

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

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

Плюсы:

  • обычно используется в Linux
  • интегрирует CVS, SVN, Mercurial

Минусы:

  • графический интерфейс выглядит несколько старомодно
  • тяжелый вес
  • очень специфичен для среды KDE

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

Плюсы:

  • разумно быстро

Минусы:

  • графический интерфейс выглядит несколько старомодно (хотя и имеет хороший стартовый экран)
  • шрифты в редакторе очень маленькие
  • некоторые значки (например, значки запуска / перехода к отладчику) очень маленькие
  • нет интеграции системы управления версиями

CodeLite 2.x (примечание: это мой личный фаворит)

Плюсы:

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

Минусы:

  • нет интеграции с CVS (это важно для меня, потому что я должен использовать его на работе)
  • нет поддержки Java, Perl, Python (было бы неплохо)

Eclispe поддерживает Hg, Git, SVN и другие через плагины. А заставки / заставки засасывают огромные яйца. Они высасывают ресурсы и приносят очень мало пользы. И они обычно появляются перед тем, над чем я работаю, пока приложение загрузится. PortableApps и Eclipse должны избавиться от них.

Chris K 29.03.2010 23:28

Codelite получил ту же комбинацию клавиш, что и Visual Studio, для отладки, что делает его очень удобным для пользователей Visual Studio.

Raoul Supercopter 02.04.2010 19:19

Может быть, здесь побеждает старую лошадь, но графический интерфейс IMO eclipse действительно не имеет себе равных. Да, сначала сложно учиться, но это похоже на Vi, где продуктивность начинает стремительно расти после того, как вы поднялись по крутой кривой обучения. Чтобы доказать свою точку зрения, попробуйте нажать Ctrl + 3 - одна из очень замечательных функций в eclipse IMO.

kizzx2 19.07.2010 06:11

«Минусы: использует пробелы для отступов [...] Я уверен, что это можно настроить, но я не мог понять, как это сделать». Это показывает, что вы на самом деле не использовали инструменты, иначе вы в конце концов нашли бы вариант.

Johan Boulé 20.07.2010 19:54

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

Didier A. 24.02.2011 14:03

Eclipse Indigo (3.7) теперь поддерживает Git из коробки (не могу подтвердить, насколько хорошо он работает, я его не использовал)

Nathan Moos 28.09.2011 06:05

CodeLite теперь поддерживает CVS: codelite.org/Main/ReadMore#toc9

James Ko 23.11.2015 00:01

Дерьмо, из коробки не работает.

Pavel 24.10.2016 15:31

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

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

The Linux Tools project aims to bring a full-featured C and C++ IDE to Linux developers. We build on the source editing and debugging features of the CDT and integrate popular native development tools such as the GNU Autotools, Valgrind, OProfile, RPM, SystemTap, GCov, GProf, LTTng, etc. Current projects include LTTng trace viewers and analyzers, an RPM .spec editor, Autotools build integration, a Valgrind heap usage analysis tool, and OProfile call profiling tools.

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

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

Для меня Окончательный ++ кажется лучшим решением для написания кросс-OS программы

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

Обладая проницательностью, у вас есть красивый графический интерфейс и чистая мощь 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 вы можете использовать «Установить следующий оператор», чтобы изменить способ работы вашего приложения. Хотя эта функция может привести к сбою вашего приложения при неправильном использовании, но она сэкономит вам много времени. Например, если вы обнаружили, что состояние вашего приложения некорректно, но вы не знаете, что вызвало проблемы, вы можете повторно запустить определенную область исходного кода без перезапуска приложения.
  6. Нет встроенной поддержки STL, такой как vector, list, 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.

Хорошая точка зрения. Но, к сожалению, у GDB очень крутая кривая обучения. Я использую его в течение многих лет, и я до сих пор никогда не использовал макросы, и (хотя я знаю, что это возможный через макросы!) Любой код STL, который я ему добавляю, не может быть отлажен лучше, чем в современных IDE.

Konrad Rudolph 29.03.2010 22:01

Я потратил 2 дня на освоение большинства команд в GDB. Как только вы познаете всю мощь ГББ, вы никогда не оглянетесь назад. Это сэкономит вам много времени, когда вы исправите труднодоступные ошибки.

Charles Zhang 05.04.2010 03:28

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

И многое другое в серии советов и приемов vi / vim.

Я предпочитаю использовать Emacs и Vim для написания кода на C++. Когда мне нужно использовать IDE, я использую CodeBlocks.

Я использую Анджута для своих университетских проектов около 3 лет назад. Последнее время не пользуюсь. Но тогда это было хорошо, так что с последними выпусками должно быть лучше.

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

Jeremy Salwen 05.07.2011 21:57

Code :: Blocks - это здорово.

Я использую "Geany", который до сих пор считался удачным, его быстрая и легкая IDE.

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

  • Сворачивание кода
  • Сохранение сеанса
  • Основные функции IDE, такие как подсветка синтаксиса, вкладки, автоматический отступ и завершение кода
  • Простое управление проектом
  • Система сборки
  • Палитра цветов (на удивление удобно во время веб-разработки)
  • Встроенная эмуляция терминала
  • Советы по звонкам
  • Списки символов
  • Автозаполнение общих конструкций (например, if, else, while и т. д.)

Мне нравится, как люди полностью пропускают запрос в исходном вопросе для IDE. Linux НЕ является IDE. Просто не то, что означают эти слова. Я изучил c и C++, используя vi, gcc и make, и я не говорю, что они не являются подходящими инструментами, но они НЕ являются IDE. Даже если вы используете более сложные инструменты, такие как vim или emacs, или любой другой модный редактор, который вам нужен, ввод команд в командной строке не является IDE.

Кроме того, вы все знаете, что make существует как часть визуальной студии, верно? Идея о том, что IDE «ограничивает», просто глупа, если вы можете использовать IDE для ускорения некоторых вещей, но все же можете вернуться к работе с командной строкой, когда это необходимо.

С учетом всего сказанного, я бы предложил, как и некоторые из вышеперечисленных, попробовать блоки кода. Он имеет приличную подсветку кода, довольно простой способ создать проект, закодировать его, запустить и т.д., что является ядром настоящей IDE и кажется довольно стабильным. Отладка - отстой ... Я никогда не видел достойного интерактивного отладчика в любом варианте linux / unix. gdb не так ли. Если вы привыкли к отладке в стиле Visual Studio, вам в значительной степени не повезло.

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

У вас есть пункт. Это не IDE в том виде, в каком мы ее знаем. Однако интересно, что ОП проголосовала за этот ответ! Прикрепляю свои цвета к мачте: я фанат make-файлов командной строки.

ScrollerBlaster 02.03.2012 02:48

Наконец, кто-то, у кого есть мозги ... Я думаю, другие просто кодируют тривиальные вещи, если они могут делать все с помощью emacs / vim.

Pippo 11.12.2016 23:38

Также вы можете попробовать настроить emacs как IDE.

Подробности обсуждаются здесь.

акме, Сэм из plan9,

вы можете использовать его через Plan 9 из пользовательского пространства.

редактор vim + компилятор g ++ (GNU C++) + gdb - может вам помочь

IntelliJ IDEA + плагин C / C++ в http://plugins.intellij.net/plugin/?id=1373

Приготовьтесь к тому, что ваш ум взорвется.

Ваше здоровье!

На мой взгляд, лучшая IDE для Linux - это SlickEdit. Это стоит денег, но работает быстро, с отличной поддержкой тегов и отличным инструментом сравнения, хорошо работает с огромными проектами.

Для проектов на основе CMake я использую Jetbrains CLion

Для проектов на основе Autotools уже упомянутый Qtcreator.

Для всего остального: VIM + YouCompleteMe

В Linux существует множество IDE:

В опыте мой наиболее ценными являются Затмение и Qt Creator. Оба предоставляют все "стандартные" функции (например, автозаполнение, подсветку синтаксиса, отладчик, интеграцию с git). Стоит отметить, что Eclipse также предоставляет функции рефакторинга, в то время как Qt Creator обеспечивает интеграцию с Valgrind и поддержку развертывания на удаленных объектах.

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

Другие вопросы по теме