Топ-8 популярных IDE для программирования на C++
Сегодня рассмотрим 8 популярных сред программирования на C++. Многие из них поддерживают также и другие языки.
Microsoft Visual Studio
Visual Studio — интегрированная среда разработки C++, которая позволяет разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms. Она также подходит для создания веб-сайтов, веб-приложений и веб-служб для всех поддерживаемых платформ: Windows, Windows Mobile, Windows CE, .NET Framework, Xbox, Windows Phone, .NET Compact Framework и Silverlight.
Достоинства:
- Есть бесплатная версия Visual Studio Community.
- Встроенный интерфейс командной строки.
- API для подключения дополнительных инструментов отладки.
- Полный набор инструментов разработчика для создания и клонирования Git-репозиториев, управления ветвями и разрешения конфликтов слияния прямо в интегрированной среде разработки C++.
- Большой набор дополнений для расширения базовой функциональности.
Недостатки:
- Высокая стоимость платных версий Professional и Enterprise (от 45 долларов в месяц).
- Высокие требования к «железу».
- Нет версии для Linux.
Eclipse CDT
Eclipse — свободная интегрированная среда разработки модульных кроссплатформенных приложений, которая приобрела большую популярность среди разработчиков на Java, однако в данной статье мы рассмотрим выпуск Eclipse CDT (С/С++ Development Tooling). Данная среда является отличным выбором, так как Eclipse CDT не только обладает всеми необходимыми инструментами, но и бесплатна и работает под различными операционными системами: Windows/Linux/macOS.

Достоинства:
- Бесплатное использование.
- Автозавершение и другие возможности, которые помогают быстрее писать код.
- Большой набор плагинов для расширения функциональности.
- Развитое сообщество разработчиков, подробная документация.
- Встроенное юнит-тестирование, оптимизация тестов.
- Настраиваемый графический интерфейс.
Недостатки:
- Медленный запуск, потребление большого объёма памяти.
- Проблемы с обратной совместимостью.
- Возможны конфликты плагинов.
Sublime Text
Sublime Text — проприетарный текстовый редактор, написанный на C++ и Python. Разработан в 2008 году. У этого текстового редактора кода достаточно большое сообщество, поэтому нет проблем с поиском дополнений и обучающих материалов.

Достоинства:
- Можно пользоваться бесплатно.
- Не предъявляет высоких требований к «железу».
- Встроенная поддержка нескольких десятков языков программирования.
- Автозавершение и подсветка синтаксиса в текстовом редакторе кода.
- Большой выбор плагинов, написанных на Python.
Недостатки:
- Не такой хороший отладчик, как в Visual Studio и других IDE.
- Нет автосохранения файлов.
- Постоянно предлагает купить платную версию.
NetBeans
NetBeans — еще одна бесплатная интегрированная среда разработки. Позволяет создавать приложения на языках программирования Java, Python, PHP, JavaScript, C, C++ и ряде других. У этой интегрированной среды программирования C++ есть дистрибутива для платформ Microsoft Windows, Linux, FreeBSD, macOS , OpenSolaris и Solaris, а для всех остальных платформ есть возможность собрать NetBeans самостоятельно из исходников.

Достоинства:
- Бесплатная интегрированная среда разработки C++ .
- Кроссплатформенная поддержка.
- Большой выбор плагинов.
- Автозавершение кода, инструменты для рефакторинга.
- Развитое сообщество разработчиков.
Недостатки:
- Медленный запуск.
- Проблемы с собственным кэшем при сборке готовых программ.
- Для установки требуется JDK.
Qt Creator
Qt Creator — интегрированная среда разработки C++, доступная на Windows, Linux и macOS. Предоставляет бесплатную версию, которой можно пользоваться в течение 1 месяца. Предлагает полный набор инструментов разработчика, предназначенных для создания и развёртывания приложений.

Достоинства:
- Поддерживает отладку, профилирование, автозавершение кода и рефакторинг.
- Возможность компиляции проектов для разных ОС.
Недостатки:
- Большой вес приложений.
- Не всегда работает автозавершение кода.
- Дорогая платная версия.
- Нужна регистрация для скачивания бесплатной версии.
CLion
CLion — кроссплатформенная среда программирования на C++ от компании JetBrains. Включает в себя современные стандарты C ++, libc ++ и Boost. Поддерживает также другие языки программирования — Kotlin, Python, Rust и т.д. — «из коробки» или с помощью плагинов.

Достоинства:
- Удобные механизмы отладки приложений.
- Автозавершение кода.
- Поддержка VIM.
Недостатки:
- Нет бесплатной версии — только демо на 30 дней.
- Нет встроенного компилятора.
- Возникают проблемы с установкой компилятора.
CodeLite
CodeLite распространяется бесплатно и работает во множестве операционных систем: Windows 7/8/8.1/10, Debian, Ubuntu, Fedora, OpenSUSE, ArchLinux и macOS. Интерфейс прост и интуитивно понятен, что делает его весьма хорошим выбором для новичков. Также следует отметить, что последние версии этой интегрированной среды разработки C++ поддерживают проекты на PHP и Node.js.

Достоинства:
- Мощный инструмента автозавершения кода, основанный на собственном синтаксическом анализаторе.
- Плагины для работы с Git и SVN.
- Встроенный отладчик.
Недостатки:
- Сложный интерфейс.
Code::Blocks
Завершает нашу подборку бесплатная среда разработки Code::Blocks. Она позволит писать не только на С/С++, но и обеспечит поддержкой таких языков программирования, как Fortran и D (с некоторыми ограничениями). У набора инструментов разработчика есть возможность для расширения за счёт установки плагинов. У этой среды программирования на C++ есть версии под Windows, macOS и Linux, однако существует возможность установить её на любую Unix-подобную систему при помощи сборки исходников.

Достоинства:
- Бесплатная среда разработки C++.
- Автозавершение кода.
- Встроенный отладчик.
- Большой выбор плагинов для расширения функциональности.
Недостатки:
- Не подходит для разработки больших проектов.
IDE помогают работать с языком, но чтобы его изучить, нужны время и ресурсы. Вот ещё пара полезных материалов, которые помогут вам освоить C++:
11 лучших IDE для C++ (и редакторов кода) на 2022 год

Изучение
C ++ — мощный и универсальный язык программирования. Это также может быть непростой мастер. Это означает, что очень важно иметь в своем арсенале правильные инструменты, которые помогут вам кодировать более эффективно, результативно и уверенно. Когда дело доходит до поиска лучшей IDE или редактора кода для программирования на C ++, с чего начать? Список вариантов IDE почти бесконечен, и может быть трудно сказать, какая из CPP IDE будет лучшей для ваших потребностей в разработке программного обеспечения.
К счастью, этот исчерпывающий список из 11 лучших C ++ IDE (и редакторов кода) на 2022 год вас охватил.
Мы обсудим плюсы и минусы некоторых из самых популярных IDE и редакторов кода на рынке и рассмотрим идеальный вариант использования для каждого из них. Мы уверены, что вы найдете подходящую C ++ IDE для своего варианта использования и быстро начнете писать код более эффективно.
Что делает C++ IDE лучшей?
Прежде чем мы рассмотрим 11 лучших C ++ IDE на 2022 год, мы должны ответить на важный вопрос: что такое IDE?
IDE или интегрированная среда разработки — это программное приложение, упрощающее написание кода. IDE — полезные инструменты для любого разработчика, надеющегося упростить процесс разработки.
Что делают лучшие IDE?
Многие IDE помогут вам отлаживать, рефакторинг, консолидировать и компилировать ваш код. Некоторые IDE имеют меньше наворотов и ближе к классическому текстовому редактору. Другие IDE имеют ряд функций, включая такие инструменты, как автозаполнение и подсветка синтаксиса, которые помогают не только запускать код, но и писать его. IDE часто позволяют плагинам предоставлять вам еще больше возможностей, помимо того, что есть в стандартной комплектации.
Определенная среда IDE может облегчить определенные задачи на определенных языках программирования. Вот почему важно найти среду IDE, которая уравновешивает ваши потребности с потребностями любого языка (или языков), на котором вы кодируете.
Мы лучше других знаем, что C ++ может быть сложным для изучения языком, поэтому важно иметь правильную среду IDE для поддержки ваших потребностей в разработке на C ++.
У нас есть мысли о лучших бесплатных IDE для C ++, которые могут увести вас довольно далеко. Но если вам нужно больше функций и больше возможностей, есть несколько фантастических C ++ IDE, которые стоит потратить. Все зависит от ваших потребностей и бюджета.
К счастью, этот исчерпывающий список из 11 лучших IDE для C ++ в 2022 году вас охватил.
Особенности лучших C ++ IDE
C ++ — это объектно-ориентированный язык программирования общего назначения. C ++ используется во множестве приложений, в том числе для разработки операционных систем, веб-браузеров, игр с тяжелой графикой и баз данных.
При выборе лучшей IDE для программирования на C ++ вам понадобится IDE, которая соответствует вашим индивидуальным потребностям.
Какие из этих соображений?
- Хорошо ли спроектирована и проста в использовании среда IDE?
- Какие функции доступны и насколько эти функции настраиваются?
- Вам нужно писать код на других языках программирования, помимо C ++, в вашей среде IDE?
- Достаточно ли мощности в IDE для ваших нужд?
- Сколько это стоит?
- Совместима ли она с выбранной вами операционной системой? (например, если вы являетесь пользователем Apple, доступна ли IDE для macOS / OS X?)
- Есть ли у него кроссплатформенная функциональность?
- Можно ли использовать его прямо из коробки или требуется некоторая настройка или настройка? (например, имеет ли он встроенную компиляцию или поддерживает интеграцию с Clang или другим компилятором C ++?)
- Если вы работаете по контракту или внештатно, нужна ли вам собственная IDE с подписью пакетов и сертификатами?
- Вам даже нужна полноценная IDE для вашего рабочего процесса, или вы можете обойтись более легким текстовым редактором или редактором кода?
У каждого разработчика разные потребности и предпочтения, поэтому мы составили список лучших C ++ IDE (и редакторов кода) для всех различных случаев использования. Чтобы вам было еще проще, мы перечислили плюсы и минусы каждой из лучших IDE.
11 лучших IDE для C++ на 2022 год
Вот наш полный список из 11 лучших IDE C ++ (и редакторов кода) на 2022 год в произвольном порядке.
1. Dev-C ++

Dev-C ++ — это бесплатная полнофункциональная интегрированная среда разработки. Написанный на Delphi, является давней стартовой IDE для начинающих разработчиков на C ++. Это хороший вариант для быстрого запуска кода, но у него не так много функций, которые поддерживают крупномасштабное написание кода. Он не такой полный, как другие IDE в этом списке, и может не работать так же хорошо для более крупных проектов.
В конечном счете, Dev-C ++ — достойный удобный для Windows бесплатный вариант для начала работы, но он недоступен для macOS или Linux и немного ограничен и устарел для разработчиков, которым требуется больше функций.
Плюсы
- Бесплатная IDE с открытым исходным кодом (GPL)
- Просто, хорошо для новичков
- Разработан специально для C ++, поэтому вы можете начать кодировать на C ++ прямо из коробки.
Минусы
- Ограниченные возможности
- Багги, устаревший
- Доступно только для Windows
Пример использования Dev-C ++
Вы новый разработчик, который использует Windows и хочет начать работу с базовой готовой IDE, созданной специально для C ++.
2. Eclipse

Eclipse может быть наиболее известен своей Java IDE с открытым исходным кодом, но Eclipse C / C ++ IDE также является хорошим вариантом для C ++.
Тот факт, что Eclipse является открытым, бесплатным и поддерживает кроссплатформенную разработку, делает его надежным вариантом для программистов, разрабатывающих на нескольких языках. Он также предлагает ряд настраиваемых функций, от отладки и компиляции кода до сравнения файлов и автоматического завершения кода. Эта возможность настройки делает Eclipse лучшей IDE для разработчиков на C ++, а также для многоязычных разработчиков, заинтересованных в настройке своей среды кодирования.
Плюсы
- Открытый исходный код, бесплатно
- Доступно для всех операционных систем
- Полностью настраиваемый
- Полезный набор функций, доступных через плагины и расширения (включая автокоррекцию, рефакторинг кода и ярлыки кодирования)
- Работает для других языков программирования
Минусы
- На более тяжелой стороне загружает процессор и может работать медленно
- Написано на Java, поэтому для разработки на C ++ требуются плагины и некоторая настройка (именно здесь аспект «гибкой настройки» может быть недостатком)
- Не компилируется автоматически; вы должны загрузить и установить компилятор C ++ (например, MinGW для Windows)
Пример использования Eclipse
Вы многоязычный разработчик, ищущий среду IDE, которая предлагает обширную среду плагинов, и вы не против потратить время на настройку своего опыта.
3. Code::Blocks

Code :: Blocks — это еще одна бесплатная IDE C / C ++ с открытым исходным кодом, которая была первоначально выпущена в 2005 году. Она была создана специально как IDE для C и C ++.
Code :: Blocks предлагает основные функции, которые вы могли бы ожидать от любой надежной IDE: автоматическое завершение кода, отладка, компиляция. Дополнительные функции доступны через настраиваемые плагины, включая профилирование, покрытие кода, анализ кода, перетаскивание и многое другое. Однако многие из этих функций несколько упрощены по сравнению с функциями других более мощных и оптимизированных IDE, представленных на рынке.
Хотя он был создан специально для C ++, который идеально подходит для начинающих, желающих начать разработку на C ++ из коробки, Code :: Blocks несколько упрощен и в некоторых отношениях устарел.
Плюсы
- Бесплатно, просто, хорошо для новичков
- Написан и разработан для C ++, что означает, что его легко установить и использовать прямо из коробки.
- Стандартные функции, предлагает ряд гибких плагинов
- Легче, чем многие другие IDE, поэтому может работать на старом оборудовании
Минусы
- Новейшая стабильная версия недоступна для macOS (хотя более старые версии есть)
- Интерфейс выглядит старым и не очень отполированным
- Не лучший выбор для кросс-языковой разработки: работает только для C / C ++ и Fortran.
- Компилятор может быть непросто настроить
Пример использования Code :: Blocks
Вы — новый разработчик, ищущий простую IDE, созданную специально для C ++.
4. Visual Studio Code (VS Code)

Visual Studio Code (VS Code) — это кроссплатформенный редактор исходного кода с открытым исходным кодом, созданный Microsoft.
Как ведущий редактор кода в отрасли, VS Code остается очень популярным инструментом для разработки на многих языках (не только на C ++), особенно среди пользователей Windows. Долгое время VS Code поддерживал разработку только в Windows, но недавно стал доступен для Mac и Linux.
VS Code достаточно легок, чтобы работать на старом оборудовании, но при этом имеет надежный набор функций, включая отладку, выполнение задач, подсветку синтаксиса, навигацию по коду и контроль версий. Однако для более сложных рабочих процессов аналог Microsoft IDE Visual Studio может быть лучшим вариантом.
Есть бесплатная версия, которая подойдет для большинства нужд, а также корпоративная версия с дополнительными функциями и поддержкой.
Существует также множество загружаемых расширений для всех ваших нужд, о которых вы можете узнать больше в этом списке лучших расширений VS Code.
В целом, эффективность и переносимость VS Code, сбалансированные с его мощным набором функций, делают его одним из лучших универсальных редакторов кода для разработки на C ++ и выше — и, вероятно, лучшим бесплатным редактором исходного кода на рынке.
Плюсы
- Создан, чтобы помочь разработчикам эффективно кодировать, создавать и отлаживать
- IntelliSense (система автозаполнения, уникальная для VS Code)
- Подходит для кроссплатформенной и многоязычной разработки
- Солидный набор инструментов и расширений для торговых площадок
- Высокая переносимость (код, который вы пишете в Ubuntu, будет работать в Windows и Mac)
- Отличное форматирование
- Поддержка контроля версий через интеграцию с Git
Минусы
- Редактор исходного кода (не IDE), поэтому менее идеален для сложных рабочих процессов и более тяжелых проектов.
- Может потребоваться время, чтобы набрать скорость
- Время настройки (но ускоряет процедуру настройки на других языках)
- Обратной стороной бесплатного программного обеспечения с открытым исходным кодом VS Code является отсутствие подписи пакетов и сертификатов, которые для профессионального использования могут быть восприняты как угроза вредоносного ПО.
- Visual Studio 2019 (аналог VS Code с полной IDE) требуется для создания приложений.NET, UWP или Azure.
Пример использования кода Visual Studio
Вы профессиональный разработчик, которому нужен кроссплатформенный многоязычный редактор исходного кода, который был бы легким и эффективным, но все же имел бы достаточно функций, чтобы пройти через стандартный цикл редактирования-сборки-отладки.
5. Visual Studio 2019

Microsoft Visual Studio — более надежный аналог Visual Studio Code в среде IDE. Как полноценная IDE Visual Studio лучше подходит для более сложных систем, чем его более легкий и переносимый аналог VS Code.
Обновленная совсем недавно, в 2021 году (с новым выпуском, который выйдет в 2022 году), Visual Studio представляет собой мощный инструмент для разработчиков, пишущих на C ++ и не только. Visual Studio только недавно была выпущена для Linux, но у нее нет новой стабильной версии macOS.
Плюсы
- Полная IDE
- Подписание пакетов и сертификаты делают его хорошим выбором для официального использования.
- Превосходит VS Code для более сложных (например, некоторых потребностей в бэкэнд-инжиниринге)
Минусы
- Для большинства случаев использования VS Code, вероятно, будет достаточно
- Тяжелее, не будет работать на старом оборудовании
- Недоступно для macOS
Пример использования Visual Studio 2019
Вы — преданный разработчик, который регулярно меняет языки, хочет изучить один инструмент для всех ваших потребностей в программировании и нуждается в большей мощности и функциях, чем то, что может предоставить более легкий редактор исходного кода, такой как VS Code.
6. CLion от JetBrains

CLion — это IDE C / C ++, созданная JetBrains, авторитетным создателем IDE. Он — надежный вариант для профессиональных разработчиков, пишущих на C ++, особенно для более крупных и сложных проектов. Однако это проприетарное программное обеспечение, поэтому покупка лицензии стоит денег.
Несмотря на то, что CLion построен в основном для C ++, он поддерживает плагины для разработки на других языках (Python, Rust и Swift, среди прочих). Хотя CLion представляет собой тяжелую среду разработки, которая может истощать ресурсы ЦП и ОЗУ, ее относительно легко настроить, она содержит отличные функции «из коробки» и поддерживает интеграцию с CMake.
Плюсы
- Умный редактор
- Встроенный терминал
- Поддержка CMake
- Горячие клавиши
- Кроссплатформенность
Минусы
- Проприетарное программное обеспечение может быть дорогим (от 200 долларов США за пользователя)
- Тяжелый, не идеальный для более легкого использования
- ЦП и ОЗУ
Пример использования CLion
Вы профессиональный разработчик, использующий новое оборудование и кодирующий в основном на C ++, который не против заплатить за полную IDE C ++, которая будет поддерживать сложные рабочие процессы.
7. CodeLite

CodeLite — это бесплатная среда разработки на C ++ с открытым исходным кодом (но также поддерживает разработку на JavaScript и PHP). Начинался как проект автозаполнения, основанный на SQLite, но превратился в кроссплатформенную IDE C ++.
CodeLite относительно прост в использовании и легковесен, что делает его хорошим вариантом для отладки и тестирования на C ++. Как и Code :: Blocks, CodeLite использует набор инструментов wxWidgets, и вы можете отлаживать и компилировать, используя бесплатные инструменты, включая MinGW и отладчик GNU.
Плюсы
- Бесплатная IDE с открытым исходным кодом
- Легкий, быстрая скорость работы
- Простая установка и использование
- Механизм автозавершения кода на основе CLang
Минусы
- Не такой полнофункциональный, как другие IDE на C ++
- В основном ограничивается разработкой на C / C +
Пример использования CodeLite
Вы — новый разработчик, которому нужна простая и понятная бесплатная IDE, созданная специально для C ++.
8. NetBeans

Apache NetBeans — еще одна бесплатная кроссплатформенная среда IDE с надежным набором функций и подключаемых модулей. NetBeans приобрел популярность как лучшая среда разработки для Java, но благодаря своему пакету C / C ++ поддерживает ряд других языков, включая CSS, HTML и PHP, а также C ++.
NetBeans предлагает ряд функций, включая рефакторинг кода, интерфейс отладчика, символы с учетом языка и навигацию по исходному тексту, автозаполнение, конфигурацию компилятора и статический анализ.
Плюсы
- Бесплатно, с открытым исходным кодом
- Сильная поддержка сообщества
- Надежные функции
Минусы
- Чаще всего используется для Java
- Может быть сложно настроить для C ++
- UI кажется немного устаревшим
Пример использования NetBeans
Вы — разработчик Java, которому необходимо уметь кодировать на C ++ и который хочет делать это в знакомой среде.
Нравится статья? Прокрутите вниз, чтобы подписаться на нашу бесплатную новостную рассылку, выходящую два раза в месяц.
9. QT Creator

QT Creator — это кроссплатформенная среда IDE, созданная для оптимизации проектирования и разработки графического интерфейса. Он написан на C ++, но также поддерживает JavaScript и QML.
Благодаря включению QT Designer, QT Creator был создан для поддержки дизайна и программирования графического интерфейса пользователя (GUI). QT Creator также содержит ряд стандартных функций IDE, включая отладку, автозаполнение и подсветку синтаксиса.
Плюсы
- Отличный инструмент для дизайна и программирования пользовательского интерфейса
- Быстрый и отзывчивый
- Имеет публичную лицензию, но при необходимости также имеет проприетарную версию.
- Подходит для кросс-системной разработки (в том числе для Linux)
Минусы
- Меньше готовой поддержки различных языков
- QT отлично подходит для работы с графическим интерфейсом, но в остальном имеет ограниченные возможности
Пример использования QT Creator
Вы заинтересованы в разработке кроссплатформенного настольного приложения и хотите иметь хорошую IDE на C ++, которая специализируется на разработке и программировании графического интерфейса.
10. XCode

XCode — бесплатная IDE Apple для Mac. Она поддерживает C ++, а также множество других языков, включая C, Objective-C, Objective-C ++, Java, Python, Ruby и Swift.
Неудивительно, что XCode — отличный вариант для пользователей macOS, поскольку это единственная официально поддерживаемая среда IDE для macOS, iOS и других версий (XCode также предлагает подписывание пакетов и сертификаты).
Плюсы
- Лучшая C ++ IDE, созданная для пользователей Apple
- Поддерживает многие языки помимо C ++
- Бесплатно
Минусы
- Доступно только для macOS
- Ограничено разработкой для платформ Apple
Пример использования XCode
Вы пользователь Apple, заинтересованный в разработке специально для macOS или iOS.
11. Atom

Atom — мощный текстовый редактор, разработанный GitHub. Хотя Atom готов к разработке на R и Python, с небольшой настройкой Atom можно использовать для разработки на C ++, а также для множества других языков.
Atom легко взломать, поэтому вы можете использовать CSS для настройки Atom под свои нужды. Вам просто нужно скачать компилятор для C ++, для которого доступен пакет компилятора gpp.
Подобно другому популярному редактору исходного кода, Sublime Text 3, Atom предлагает широкий спектр плагинов и расширений. Однако вот что интересно: Atom можно использовать бесплатно, тогда как цены на Sublime начинаются с 80 долларов.
Плюсы
- Бесплатно
- Очень легко взломать
- Отличная интеграция плагинов
- Легкий и простой в использовании
Минусы
- Не подходит для нестандартного использования (может быть сложно настроить для C ++)
- Необходимо установить сторонний компилятор C ++ (например, gpp-compiler или MinGW для Windows)
- Не полная IDE
Пример использования для Atom
Вы разработчик с основами Python или R, который заинтересован в настройке своей среды кодирования для работы с C ++, но не нуждается в полной IDE.
ТОП-7 популярных IDE для программирования на С++

В работе любого современного разработчика программного обеспечения существуют инструменты, ставшие практически обязательными для каждодневного применения. Если говорить о программировании на языке C++, таким инструментом, в первую очередь, будет конечно интегрированная среда разработки или IDE (Integrated Development Environment). Конечно, опытный программист может обойтись и без использования IDE, но это существенно скажется на таких моментах как скорость разработки, качество кода и, конечно же, на удобстве самого процесса написания этого кода.
Сегодня мы рассмотрим ТОП-7 лучших сред программирования на C++. Это наиболее часто применяемые инструменты от разных компаний и сообществ.
Отличия между IDE и текстовым редактором
Для начала напомним разницу между текстовым редактором, применяемым для написания программ и полноценной IDE. Если упростить, текстовый редактор – это программа, с помощью которой разработчик взаимодействует непосредственно с кодом как текстом. Используя клавиатуру, с помощью текстового редактора разработчик вводит символы и ключевые слова языка программирования, описывая этими словами некий алгоритм, понятный в дальнейшем компьютеру. Код, написанный на C++ с помощью текстового редактора кода, нужно будет в дальнейшем отправить на компилирование в другую программу – компилятор, который не входит в состав текстового редактора.
Интегрированная среда разработки, в свою очередь, это некий комплекс отдельных инструментов разработчика, позволяющий не только написать код программы, но и скомпилировать этот код в готовое приложение, провести тестирование этой программы, поиск ошибок, рефакторинг и другие действия. В состав современных IDE, как отдельные элементы уже входят:

- текстовый редактор;
- компилятор (или интерпретатор – для интерпретируемых языков программирования);
- отладчик;
- система управления версиями;
- другие инструменты.
Современные IDE могут существенно расширять свой функционал благодаря различным плагинам. Стоит отметить, что некоторые текстовые редакторы (например Vim, Visual Studio Code, Emacs), благодаря доступным плагинам, также расширяют свой функционал, доводя его до практически IDEшных возможностей. Однако, это все же два разных инструмента разработчика. Текстовый редактор предназначен скорее для внесения мелких изменений в код отдельных файлов будущей программы. IDE, в свою очередь, работает с программой комплексно, рассматривая ее в целом как «проект» или набор «проектов», а не как отдельные текстовые файлы с кодом. Отсюда и разница в доступных возможностях этих инструментов.
Рейтинг IDE для С++ по данным Standard C++ Foundation
Познакомимся с данным опроса, проведенного среди 3240 разработчиков в феврале 2018 организацией Standard C++ Foundation (Некоммерческая организация с Бьёрном Страуструпом в качестве одного из руководителей. Целью организации является поддержка сообщества разработчиков программного обеспечения C ++). По данным этого опроса, разработчики на C++ выделили такие средства разработки, как наиболее часто используемые:

Первое место среди IDE у Visual Studio с 55.28% использующих его разработчиков, второе у Qt Creator — 24.41% разработчиков, третье место у CLion — 14.66%, четвертое место занимает Eclipse — 12.78% разработчиков, пятое место у XCode — 12.22% разработчиков, шестое место у Android Studio – 5.15%, седьмое у Code::Blocks – 4.85%.
Как мы видим многие разработчики для работы используют текстовые редакторы с различными расширениями функций или без них. В число таких входят: Vim — 37.93% разработчиков, Visual Studio Code — 25.77% разработчиков, Emacs (технически, это текстовый редактор с расширениями функционала до IDE) — 13.55%, Sublime — 12.78%.
Рейтинг IDE среди пользователей reddit
По результатам опроса, проведенного среди 1860 участников в конце февраля 2018 года в сообществе r/cpp на портале reddit.com, первое место также занимает Visual Studio – 28.43%:

Среди представителей IDE в число наиболее часто используемых также вошли:
Тема связана со специальностями:
Qt Creator – 11.64%, CLion – 8.91%, Xcode – 4.05%, Eclipse – 3.98%, Code::Blocks – 2.43%.
Рейтинг IDE для C++ от компании JetBrains

Компания JetBrains, одна из ведущих компаний — создателей инструментов для разработчиков (в частности создатель и владелец одного из ведущих IDE для C++ — CLion), представила в 2018 году свою статистику наиболее часто используемых интегрированных сред программирования С++.
По данным этой статистики, первое место среди различных сред разработки для C++ также получает Visual Studio, используемая 32% программистов. Следующие места в этом рейтинге интегрированных сред разработки распределились таким образом: второе место у CLion – 11%, третье место у Xcode – 5%, четвертое место у Eclipse – 5%, пятое место у QtCreator – 4%, шестое место у Atom – 3%, седьмое место у NetBeans – 3%.
Также полезной будет статистика от той же компании JetBrains, показывающая наиболее часто применяемые в разработке компиляторы:

Рейтинг лучших сред разработки для C / C++ IDE от G2 Crowd
Интересные данные предоставляет аналитическая платформа G2 Crowd. Проанализировав частоту использования разработчиками различных сред разработки на C / C++ и степень удовлетворенности этими инструментами, компания представила такую инфографику:

Из этой схемы мы все еще наблюдаем лидирование Visual Studio, среди других сред разработки для C++. Достаточно нишевыми продуктами оказываются CodeLite и Code::Blocks.
Мы рассмотрели несколько открытых рейтингов лучших сред программирования C++. Используя указанные данные, мы сделали свой рейтинг лучших сред разработки.
1) Visual Studio

Visual Studio занимает первое место в нашем рейтинге. Это широко известная полнофункциональная среда разработки от компании Microsoft, которая позволяет работать с такими платформами, как Windows, Интернет, облако и Android. Возможности IDE Visual Studio позволяют правильно и эффективно писать код, реорганизовывать, анализировать и исправлять проблемы с кодом. Система IntelliSense предсказывает API-интерфейсы по мере их написания и выполняет автоматическое завершение для повышения скорости и эффективности разработки.
Именно эта IDE позволяет новичку легче всего войти в процесс разработки.
- Свой компилятор – MSVC.
- Существуют версии, работающие на macOS и Windows.
- Поддерживает такие языки: ASP.NET, Ajax, DHTML, Visual C++, JavaScript, JScript, Visual Basic, Visual C#, Visual F#, XAML и др.
- Бесплатно распространяется Visual Studio Community, с достаточным набором возможностей.
- Платные версии могут предоставляться учебным заведениям и студентам бесплатно.
- Удобная система умного автодополнения.
- Большое количество настроек среды разработки под «себя», благодаря встроенным механизмам и доступным дополнениям.
- Версии Visual Studio Professional и Visual Studio Enterprise являются платными.
- Тяжеловесная IDE, достаточно требовательная к железу.
- Ряд разработчиков считают ее избыточной для создания мелких проектов.
- Достаточно маленькая скорость запуска проектов и приложений.
- Не работает на Linux.
- Платные версии с расширенным функционалом распространяются по подписке: Professional – от 45$ в месяц, Enterprise – от 250$ в месяц.
2) Qt Creator

QT Creator — еще одна достаточно удобная и быстрая интегрированная среда разработки C++, предлагающая интересные возможности для разработчика. Эта кроссплатформенная IDE имеет современный редактор кода C++, встроенный удобный графический интерфейс, дизайнер форм, инструменты навигации и многое другое. Среди разработчиков многие выбирают его за его API и библиотеки, поскольку они последовательны, подробны, удобны и хорошо документированы.
QT Creator поставляется с полным набором инструментов разработчика, которые предназначены для одновременного создания приложений и пользовательских интерфейсов, а затем для дальнейшего их развертывания в различных мобильных ОС и настольных ПК. Часто отмечают простоту и отзывчивость интерфейса. В себя он включает удобный редактор кода с возможностью подсветки синтаксиса и автозаполнением, возможность создания интерфейса пользователя используя перетаскивания, инструмент визуальной отладки и др.
- Доступны версии под Linux, macOS, Windows.:
- GCC / G++;
- MinGW;
- Linux ICC;
- Clang;
- Nim;
- QCC;
- MSVC.
- Наличие бесплатной версии.
- Интеллектуальная система подсказок.
- Возможность компиляции проектов для различных систем.
- Платная версия от 459$ в месяц.
- Бесплатная версия имеет ряд ограничений.
3) CLion

Clion — это мощная и кроссплатформенная IDE для C и C++ от компании JetBrains, которая включает в себя современные стандарты C ++, libc ++ и Boost. Эта IDE хорошо знает коды и упрощает рутину, позволяя сосредотачиваться на основных вещах разработки. Одной из его основных возможностей является рефакторинг, который позволяет вам переименовывать символы, сдвигать элементы вверх или вниз по ранжированию, изменять сигнатуру функции, а также гарантировать, что ее автоматический рефакторинг будет правильно генерировать необходимые изменения в коде.
Видео курсы по схожей тематике:



Решение практических задач на C++
Интегрированный отладчик анализирует и решает проблемы с помощью дружественного пользовательского интерфейса IDE с GDB / LLDB в качестве бэкэнда. Более того, он также удаленно связывается с нативными процессами или отладками.
- Только платные версии IDE.
- Поддерживаемые языки C и C++.
- Доступны версии под Linux, Windows, macOS. такие компиляторы:
- GCC /G++;
- MinGW;
- MSVC.
- Удобные инструменты для разработки визуальных интерфейсов.
- Удобные механизмы отладки приложений.
- Возможности расширения функционала плагинами.
- Инструменты поиска ошибок в коде в потоковом режиме.
- Отсутствует бесплатная версия этой IDE.
- Годовая подписка от 199$.
4) Eclipse

IDE Eclipse, основанная на платформе Eclipse, является одной из ведущих IDE для разработчиков на C ++ и C. Eclipse предлагает поддержку разработки проектов и управляемую среду разработки с различными наборами инструментов. Он также поддерживает различные инструменты, сортировку, навигацию по гиперссылкам, редактор кода с функцией подсветки синтаксиса, инструменты визуальной отладки и многое другое.
Это бесплатное ПО с открытым исходным кодом, работающее со всеми основными ОС, включая Windows, Mac OS X и Linux. Eclipse может похвастаться удобным интерфейсом.
- Работает на таких ОС — Windows, macOS, Linux.
- Работает с такими языками — C, C++, Java, Perl, PHP, Python, Ruby и другие.
- Работает с такими компиляторами:
- GCC / G++;
- MinGW;
- Cygwin.
- Простота как установки, так и применения.
- Удобный механизм разработки графических интерфейсов.
- Инструмент с открытым исходным кодом.
- Распространяется бесплатно.
- Кроссплатформенность.
- Большое количество доступных модулей расширения – многие разработчики отмечают, что возможности модулей этой IDE значительно опережают таковые у других сред разработки.
- Ряд разработчиков отмечают неудобство использования механизмов автодополнения при написании кода.
5) Xcode

Xcode — это полноценная IDE, включающая комплект инструментов для разработки, созданная компанией Apple для написания ПО под macOS, iOS, WatchOS и tvOS.
Xcode — считается лучшей IDE для Mac, будучи созданной разработчиками самой операционной системы.
- Работает с такими языками, как — AppleScript, C, C++, Java, Objective-C.
- Работает только на macOS.
- Использует Apple LLVM и GCC компиляторы.
- Удобные инструменты для создания ПО под комплекс платформ Apple.
- Механизмы автодополнения кода.
- Удобные инструменты для работы с графическими интерфейсами.
- На ОС Windows и ОС Linux данная IDE не работает.
6) Code::Blocks
Code::Blocks или CodeBlocks — это IDE с открытым исходным кодом, распространяемая бесплатно. Code::Blocks написана на C++ с использованием wxWidgets в качестве инструментария GUI. Code::Blocks — это расширяемая и настраиваемая IDE, которая работает на таких платформах, как Windows, Linux и macOs. Различный функционал может быть добавлен в эту IDE путем установки или написания плагина. Например, благодаря таким плагинам, доступны функции компиляции и отладки. Code::Blocks поддерживает добавление различных, как готовых, так и пользовательских плагинов. Разработчики могут легко настроить эту IDE под свои нужды, а также легко перемещаться по интерфейсу вкладок. Изначально IDE Code::Blocks был создан для работы с C ++, но теперь вы также можете запускать программы на C и Fortran.
- Поддерживает работу с такими компиляторами:
- MingW / GNU GCC;
- MSVC++;
- Clang;
- Digital Mars;
- Borland C++ 5.5;
- Open Watcom.
- Полностью написан на C++;
- Работает на Linux, Mac и Windows;
- Поддерживает такие языки: C, C++, Fortran;
- Встроенный отладчик.
- Кроссплатформенный.
- Поддержка параллельной сборки.
- Является открытым программным обеспечением.
- Полная поддержка точек останова.
- Интегрированная интеллектуальная подсветка синтаксиса.
- Достаточно отзывчивое сообщество.
- Возможность настройки IDE разработчиками под «себя».
- Данная IDE плохо подходит для разработки больших проектов.
7) NetBeans

NetBeans — это одна из часто используемых разработчиками интегрированный сред программирования C++. Спонсируемый компанией Oracle, проект IDE NetBeans был передан в 2016 году в руки фонда Apache. На сегодня NetBeans поставляется с открытым исходным кодом. Написанная на Java, эта IDE имеет возможность работать на всех системах, которые поддерживают Java — Windows, Linux, macOS и Solaris. NetBeans IDE выглядит как интерфейс с функцией перетаскивания, совместно со списком шаблонов проектов. Использовать NetBeans удобно для создания приложений C / C++ как с динамическими, так и со статическими библиотеками. Кроме того, он предоставляет большой набор инструментов для программистов на C / C++. NetBeans имеет множество плагинов, которые могут расширить возможности программного обеспечения.
Официальный сайт NetBeans — https://netbeans.apache.org
- Находится под управлением Apache Software Foundation.
- Поддерживает такие языки — Java, HTML, HTML 5, C, C++ и другие.
- Работает на Windows, Linux, macOS и Solaris.
- Поддерживается работа с такими компиляторами:
- Oracle Solaris Studio;
- GCC/G++;
- CLang/LLVM;
- Cygwin;
- MinGW.
Бесплатные вебинары по схожей тематике:

Разработка графического интерфейса на QML

Многопоточная очередь сообщений на С++.

Разработка графических приложений на C++ с Qt и QML. Часть 2. Model View Controller в Qt.
- Бесплатное распространение под лицензией свободного ПО.
- Удобный интуитивный инструмент построения графического интерфейса GUI Builder.
- Большое количество расширений.
- Кроссплатформенность.
- Интеллектуальное автозавершение кода.
- Большое сообщество.
- Пользователи отмечают долгий запуск приложения.
- Ряд пользователей отмечают неудобство работы с дебаггером.
Вывод
Существует достаточно большое количество интегрированных сред разработки на C++. Для выбора IDE под разработку на C++, как и для любого другого инструмента разработчика, справедлив индивидуальный подход. Отталкиваясь от текущих задач, базовой ОС, используемых языков, необходимых плагинов, требований команды и других, сугубо индивидуальных факторов разработки, выбор вами лучшей среды программирования C++ будет различным.
Мы рекомендуем выбирать среду разработки из нашего ТОП 7. Если же вы хотите конкретный совет для начинающего – под Windows попробуйте начать разрабатывать с Visual Studio в бесплатной версии Community. В качестве лучшей бесплатной среды разработки C++под Linux попробуйте Code::Blocks и NetBeans. Упоминая выбор лучшей платной среды разработки C++ для Linux и macOS, в свою очередь, мы рекомендуем попробовать триальную версию платной IDE – CLion.
В любом случае, если вы планируете разрабатывать на C++ в течение длительного времени, выбор главного инструмента вряд ли будет для вас окончательным. Пробуйте разные варианты и следите за новшествами и изменениями.
Начинающим разработчикам на C++ мы рекомендуем ознакомиться с видео курсами ITVDN:
В чем набрать и чем собрать C++ проект
Make — [античность] мастодонт и заслуженный ветеран систем сборки, которого все никак не хотят отпустить на пенсию, а заставляют везти на себе все новые и новые проекты. Это очень низкоуровневая тулза со своим специфичном языком, где за пробел вместо таба вам сразу же грозит расстрел на месте. С помощью make можно сделать все, что угодно — билд любой сложности, но за это придется заплатить усилиями для написания скрипта, а также его поддержки в актуальном состоянии. Переносить логику билда из проекта в проект также будет накладно. Существуют некие современные «заменители» make-а: типа ninja и jam, но сути они не меняют — это очень низкоуровневые инструменты. Так же, как и на ассемблере можно написать все что угодно, только стоит ли?
CMake — [средневековье] первая попытка уйти от низкоуровневых деталей make-а. Но, к сожалению, далеко уйти не удалось — движком здесь служит все тот же make для которого CMake генерирует огромные make-файлы на основе другого текстового файла с более выскоуровневым описанием билда. По схожему принципу работает и qmake. Такой подход напоминает мне красивый фасад старого деревянного дома, который заботливо обшили свежим пластиком. CMake стабильная и хорошо зарекомендовавшая себя система, есть даже встроенная интеграция с Eclipse, но, к сожалению, мне не подошла потому что противоречит части требований изложенных в начале статьи. Под Linux все вроде бы хорошо, но если нужно построить тот же проект под Windows с помощью MSVC — а я предпочитаю нативный компилятор MinGW-шному, будут сгенерированы файлы для NMake. Т.е. зависимости на еще одну тулзу и разные команды на сборку для другой платформы. И все это следствия чуток кривоватой архитектуры, когда основная часть работы выполняется другими «помощниками».
Ant — [эпоха возрождения] своеобразный клон make для Java. Скажу честно, я потратил совсем немного времени для проверки Ant (а так же Maven) в качестве билд системы для C++. И у меня сразу же появилось ощущение что поддержка С++ здесь чисто «для галочки» и недостаточно развита. К тому же даже в Java проектах Ant уже используется достаточно редко. В качестве языка сценария (так же как и для Maven) здесь выбран XML — этот гнусный птичий язык :). Этот факт оптимизма мне совсем не прибавил для дальнейшего погружения в тему.
SCons — [новые времена] самодостаточная, кросплатформенная билд система, написанная на Python. SCons одинаково хорошо справляется как с Java так и с C++ билдами. Зависимости хидеров для инкрементальной сборки отрабатываются корректно (насколько я понял создается некая база данных с метаданными билда), а на Windows «без бубна» работает MSVC. Язык сценария сборки — Python. Весьма достойная система, и я даже хотел закончить свои изыскания на ней, но как известно, нет пределу совершенства, и при более детальном осмотре выявились некоторые минусы в свете вышеизложенных требований.
Нет никаких абстрактных настроек для компилятора, поэтому если, например, возникнет необходимость сменить тулчейн, возможно, понадобиться искать места в билд скрипте для внесения изменений. Те же макросы придется прописывать с вложенными условиями — если это Виндовс то сделай так, если это GCC сделай так и т.д.
Нет поддержки удаленных артефакториев и высокоуровневой зависимости одного билда на другой.
Общая архитектура построена так, что так называемые user defined builders существуют практически изолированно и нет возможности заиспользовать уже существующую логику билда, чтобы дополнить ее своей через несложный плагин. Но в целом это достойный выбор для небольших проектов.
Gradle [современность] — у меня уже был позитивный опыт использования Gradle для Java и Kotlin проектов и я возлагал на него большие надежды.
Для JVM языков в Gradle очень удобная концепция работы с библиотеками, необходимыми для построения проекта (билд зависимостями):
- В скрипте прописываются адреса репозиториев с артефактами: maven или ivy — например. Так же это может быть репозиторий любого другого типа/формата — лишь бы был плагин для него. Это может быть удаленный репозиторий, какой-нибудь Maven Central или ваш личный хостинг где-нибудь в сети или просто локальная репа на файловой системе.
- Так же в специальном разделе скрипта указываются непосредственно зависимости для построения — список необходимых бинарных артефактов с указанием версий.
- Перед началом построения Gradle пытается зарезолвить все зависимости и ищет артефакты с заданными версиями по всем репозиториям. Бинарники загружаются в кэш и автоматически добавляются в билд. Это очень удобно и я надеялся, что для C++, возможно, сделали нечто подобное.
Но, оказалось, что есть и «новые» плагины для поддержки C++: `cpp-application` — для приложений, `cpp-library` для библиотек: статических и динамических и наконец `cpp-unit-test` для юнит тестирования. И это было то что я искал! 🙂
Структура папок проекта по умолчанию похожа на проект для Java:
- src/main/cpp — корневая папка для основных файлов *.cpp проекта.
- src/main/headers — папка для внутренних заголовочных файлов.
- src/main/public — папка для экспортируемых заголовков — для библиотек.
- src/test/cpp — папка для файлов *.cpp юнит теста.
Кстати, билд скрипт — обычно build.gradle, это DSL языка Groovy или Kotlin (build.gradle.kts) на выбор. Внутри скрипта всегда доступен Gradle API и API добавленных в скрипт плагинов.
Для библиотек можно выбрать тип: статическая или динамическая (или собрать оба варианта).
По умолчанию сконфигурированы два варианта построения: Debug (gradle assemble) и Release (gradle assembleRelease).Принцип запуска юнит тестирования такой же как в Java: gradle test выполнит постройку основного компонента, потом тестов, если они есть в папке src/test/cpp, а затем выполнит тестовое приложение.
Пресловутые дефайны можно задавать абстрактно — Gradle сам сгенерирует необходимые параметры компилятора. Есть еще несколько абстрактных настроек типа оптимизации, отладочной информации и т.д.
Из коробки поддерживаются GCC, Microsoft Visual C++, CLang.
Система плагинов очень развита, а архитектура расширений устроена удобно — можно взять готовую логику и задекорировать/расширить ее. Плагины бывают двух видов: динамические, которые пишутся прямо на Groovy и встраиваются в скрипт или написанные на Java (или на другом языке с JVM) и скомпилированные в бинарные артефакты. Для плагинов существует бесплатный Gradle-артифакторий, в котором любой желающий может разместить свой плагин, который будет доступен всем. Что успешно и проделал автор этой статьи 🙂 но об этом чуть позже.
Хотелось бы подробнее остановиться теперь на системе работы с бинарными компонентами в Gradle для C++: она почти такая же как в Java! Билд зависимости работают практически так же как я описал выше.Возьмем для примера композитный билд:
- utils — папка с библиотекой
- app — папка с приложением, которое использует utils.
- settings.gradle — Gradle файл для объединения этих двух компонент в композитный билд.
А все остальное проделает Gradle! Добавит в компилятор путь для поиска заголовочных файлов utils и прилинкует бинарь библиотеки.
И все это одинаково хорошо сработает как под Linux GCC, так и под Windows MSVC.
Инкрементальная сборка, естественно, тоже замечательно работает и при изменении хидеров в utils будет перестроен app.Как оказалось, в Gradle пошли дальше и реализовали возможность выкладывать C++ артефакты в Maven Repository! Для этого используется стандартный `maven-publish` плагин.
В скрипте необходимо указать репозиторий куда вы хотите выложить свой артефакт и сделать gradle publish (или gradle publishToMavenLocal для локальной публикации). Gradle сбилдит проект и
выложит в специальном формате — с учетом версии, платформы, архитектуры и варианта билда.Выкладываются сами бинарные файлы библиотек и публичные заголовочные файлы — из папки src/main/public.
Понятно что выложить С++ артефакт на Maven Cental нельзя — он не пройдет обязательные проверки системы. Но поднять Maven репозиторий в сети совсем нетрудно, а для локального репозитория вообще ничего делать не нужно — это просто папка на диске.
Теперь если вы хотите использовать в своем проекте чью-то библиотеку вы можете написать в билд скрипте что-то вроде:
Здесь говориться что для юнит тестирования нужно использовать артефакт gtest версии 1.8.1 из Maven репозитория.
Это, кстати, вполне реальный репозиторий в котором выложен мой билд Google Test v1.8.1, простроенный с помощью Gradle для Windows и Linux x86_64.
Естественно, что всю низкоуровневую работу по конфигурированию компилятора и линковщика для работы с внешним компонентом Gradle берет на себя. Вам достаточно заявить о своих намерениях использовать такую-то библиотеку с такой-то версией из такого-то репозитория.
Для интеграции с IDE в Gradle есть два встроенных плагина для Visual Studio и XCode. Они хорошо работают, за исключением того что Visual Studio плагин игнорирует код юнит тестов из папки src/test/cpp и генерирует проект только для основного кода.
Теперь пришло время поговорить об IDE и о том как подружить их с Gradle
Eclipse CDT (2018-12R) — зрелый и качественный продукт. Если ему удалось успешно пропарсить Ваш проект, значит Вам повезло — редактировать будет комфортно. Скорее всего он даже «поймет» самые замороченные типы auto. Но если нет… Тогда он будет яростно подчеркивать красным пунктиром все подряд и ругаться нехорошими словами. Например, он не переваривает стандартные заголовочные файлы MSVC и Windows SDK. Даже вполне безобидный printf подчеркивается красным пунктиром и не воспринимается как нечто осмысленное. Там же оказался и std::string. Под Linux с родным ему gcc все замечательно. Но даже при попытке заставить его индексировать проект из родственного Android Native начались проблемы. В заголовках bionic он в упор отказывался видеть определение size_t, а заодно и всех функций которые его использовали. Наверное, под Windows можно исправить ситуацию если вместо заголовочных файлов Microsoft подсунуть ему, например, Cygwin или MinGW SDK, но мне такие фокусы не очень интересны, мне бы все же хотелось чтобы софт такого уровня «кушал то что дают», а не только то что он «любит».
Возможности по навигации, рефакторингу и генерации шаблонного кода замечательные, но вот к помощнику при наборе букв есть вопросы: допустим набираем несколько символов из какого-то длиннющего имени, почему бы не предложить варианты завершения? Нет, помощник терпеливо дожидается пока пользователь доберется до. или -> или . Приходится постоянно нажимать Ctrl + Space — раздражает. В Java эту досадную недоделку можно было исправить выбрав в качестве триггера весь алфавит в CDT же я не нашел простого решения.

NetBeans 8.1/10.0 — доводилось пользоваться этим IDE для Java, запомнился как неплохой и легковесный софт со всем необходимым функционалом. Для C++ у него есть плагин разработанный не сообществом, а непосредственно NetBeans. Для C++ проектов существует довольная жесткая зависимость на make и gcc. Редактор кода неторопливый. В генераторе шаблонного кода не нашел очень простую вещь: добавляем новый метод в заголовочном файле класса — нужно сгенерировать тело метода в cpp файле — не умеет. Степень «понимания» кода средняя, вроде бы что-то парсит, а что-то нет. Например, итерирование по мапе с автоитератором для него уже сложновато. На макросы из Google Test ругается. Закастомизировать билд команды проблематично — на Linux при доступном gcc и make (это при том что используется уже другая билд система) сработает, на Windows потребует MinGW, но даже при его наличии откажется построить. В целом работа в NetBeans с C++ возможна, но комфортной я бы ее не назвал, наверное, надо очень любить эту среду, чтобы не замечать разные ее болячки.


KDevelop 5.3.1 — когда-то задумывался как инструмент разработчика для KDE (Linux), но сейчас есть версия и под Windows. Имеет быстрый и приятный редактор кода с красивой подсветкой синтаксиса (основан на Kate). Закостомизировать левую билд систему не получится — для него основная система сборки CMake. Толерантно относится к MSVC и Windows SDK заголовкам, во всяком случае printf и std::string точно не приводят его в ступор как Eclipse CDT. Очень шустрый помощник по написанию кода — хорошие варианты завершения предлагает почти сразу во время набора текста. Имеет интересную возможность по генерации шаблонного кода: можно написать свой шаблон и выложить его онлайн. При создании по шаблону можно подключиться к базе данных готовых шаблонов и загрузить понравившийся. Единственное что расстроило: встроенный шаблон по созданию нового класса криво работает как под Windows так и под Linux. Wizard-а по созданию класса имеет несколько окон, в которым можно много чего настроить: какие конструкторы нужны, какие члены класса и т.д. Но на финальной стадии под Windows выскакивает какая-то ошибка успеть разглядеть текст которой невозможно и создаются два файла h и cpp размером 1 байт. В Linux почему-то нельзя выбрать конструкторы — вкладка пустая, а на выходе корректно генерится только заголовочный файл. В общем-то, детские болезни для такого зрелого продукта смотрятся как-то несерьезно.


QtCreator 4.8.1 (open source edition) — наверное, услышав это название, Вы недоумеваете, как сюда затесался этот монстр заточенный под Qt с дистрибутивом в гигабайт с гаком. Но речь идет о «легкой» версии среды для generic проектов. Его дистрибутив весит всего около 150 Мб и не тащит с собой вещи специфичные для Qt: download.qt.io/official_releases/qtcreator/4.8.
Собственно, он умеет делать почти все, о чем я написал в своих требованиях, быстро и корректно. Он парсит стандартные заголовки как Windows так и Linux, кастомизируется под любую билд систему, подсказывает варианты завершения, удобно генерит новый классы, тела методов, позволяет выполнять рефакторинг и навигацию по коду. Если хочется просто комфортно работать, не думая постоянно о том, как побороть ту или иную проблему есть смысл присмотреться к QtCreator-у.

Собственно, осталось рассказать о том, чего мне не хватило в Gradle для полноценной работы: интеграция с IDE. Чтобы билд система сама сгенерировала бы проектные файлы для IDE, в которых уже были бы прописаны команды для построения проекта, перечислены все исходные файлы, необходимы пути для поиска заголовочных файлов и определения.
Для этой цели мной был написан плагин для Gradle `cpp-ide-generator` и опубликован на Gradle Plugin Portal.
Плагин может использоваться только совместно с `cpp-application`, `cpp-library` и `cpp-unit-test`.
Вот пример его использования в build.gradle:Плагин поддерживает интеграцию со всеми вышеперечисленными графическими средами разработки, но в конфигурационном блоке плагина — ide можно отключить поддержку ненужных IDE:
Если параметр autoGenerate выставлен в true, проектные файлы для всех разрешенных IDE будут автоматически генерироваться прямо во время билда. Также в режиме автоматической генерации проектные файлы будут удаляться при очистке билда: gradle clean.
Поддерживается инкрементальная генерация, т.е. обновляться будут только те файлы, которые требуют реального обновления.
Вот список целей, которые добавляет плагин:
- generateIde — сгенерировать проектные файлы для всех разрешенных IDE.
- cleanIde — удалить проектные файлы для всех разрешенных IDE.
- generateIde[имя] — сгенерировать проектные файлы для IDE с заданным именем (IDE должно быть разрешено), например generateIdeQtCreator.
- Доступные имена: Eclipse, NetBeans, QtCreator, KDevelop.
- cleanIde[имя] — удалить проектные файлы для IDE с заданным именем, например cleanIdeQtCreator.
Второй плагин, который мне пришлось сделать, называется `cpp-build-tuner` и он также работает в паре с cpp-application`, `cpp-library` и `cpp-unit-test`.
У плагина нет никаких настроек, его достаточно просто зааплаить:
Плагин выполняет небольшие манипуляции с настройками тулчейнов (компилятора и линковщика) для разных вариантов билда — Debug и Release. Поддерживаются MSVC, gcc, CLang.
Особенно это актуально для MSVC, потому что по умолчанию в результате релизного билда Вы получите «жирный», не эстетичный бинарь с дебажной информацией и статически прилинкованной стандартной библиотекой. Часть настроек для MSVC я «подсмотрел» в самой Visual Studio, которые по дефолту он добавляет в свои C++ проекты. Как для gcc/CLang так и для MSVC в профиле Release включаются link time optmizations.
Заметка: Плагины проверялись с последней версией Gradle v5.2.1 и не тестировались на совместимость с предыдущими версиями.
Исходные коды плагинов, а так же простенькие примеры использования Gradle для библиотек: статических и динамических, а так же приложения, которое их использует можно посмотреть: bitbucket.org/akornilov/tools дальше gradle/cpp.
Так же в примерах показано, как пользоваться Google Test для юнит тестирования библиотек.
Версии QtCreator под Windows старше 4.6.2 (и по крайней мере, на момент написания этих строк, до 4.10 включительно) «разучились» понимать SDK MSVC. Все из пространства std:: подчеркивают красным и отказываются индексировать. Поэтому, на данный момент, версия 4.6.2 наиболее подходящая для работы под Windows.
Была выпущена новая версия плагина cpp-build-tuner v1.0 (и cpp-ide-generator v0.5 – небольшие улучшения).
1) В cpp-build-tuner добавлен блок конфигурации.lto (булевое значение) –разрешает или запрещает LTO для релизного билда. По умолчанию включено.
gtest (строка) – добавлет поддержку Google Test для юнит тестов. На данный момент поддерживается только версия 1.8.1 для GCC, MinGW-W64, и MSVC.
libraries (контейнер) – список библиотек для линковки. Внутри контейнера есть три поля (список строк): common – библиотеки для любой платформы, windows – только для Windows и linux – только для Linux.
libDirs (контейнер) – список папок для поиска библиотек линковщиком. Структура контейнера такая же как и у списка библиотек.
2) Добавлена возможность запуска приложения для cpp-application . Плагин добавляет в проект дополнительные задачи для этого: run , runDebug (тоже самое, что и run ) и runRelease . Задачи зависят от assemble , assembleDebug и assembleRelease соответственно.
Аналогично стандартному плагину “Java Application plugin” можно передавать параметры командной строки при запуске: gradle run —args=»arg1 arg2 . » .