Как стать автором
Обновить

Комментарии 60

Спасибо, очень интересно. Не знал, что VS Code поддерживает С++.

При наличии Qt Creator и Eclipse использовать VS Code для C++ как-то странно

Текстовый редактор + плагин != IDE

НЛО прилетело и опубликовало эту надпись здесь
Хе-хе) Тут не соглашусь))
Регистр имеет значение (а в linux особенно)!
https://packages.microsoft.com/yumrepos/VScode => 404 Not Found
Правильный адрес: https://packages.microsoft.com/yumrepos/vscode
Спасибо, исправили.
Строчка, помеченная красной точкой слева — место, где остановится программа, при выполнении.

Не для слишком ли начинающих?


Тем не менее, в vscode есть хорошее расширения для CMake и, субъективно более удобный для автокомплита, чем дефолтное расширение, анализатор для Clang.

Меня вот как-то смущает среда разработки для С/С++, написанная на JavaScript :)
Хотя под Линукс особо выбора-то и нет (а до оригинальной Visual Studio всем другим очень далеко).
Qt Creator пожалуй лучшая, хотя и в ней есть масса недостатков.
CodeBlocks ничего так, но до сих пор нет поддержки Qt5.
Eclipse просто странная (пробовал ей под виндой собирать проекты для микроконтроллера, долго плевался — у них все не как у людей).

А то, что Sublime, например, написан на Pyhton не смущает?
Опять же вы некорректно сравниваете текстовый редактор(gedit, Atom) и IDE(QTCreator, Eclipse)

Смущает, еще как. Меня даже IDE на Java, и те смущают:)
Из «текстовых редакторов с поддержкой программирования» лучшим под Линукс пожалуй будет Geany. Можно скомпилировать и запустить простенькую программу, ну и подсветка синтаксиса есть.
Тут у каждого свои предпочтения. Лучшего редактора априори быть не может, т.к. большинство имеют схожий функционал.
Кому что ближе, то и используют, на самом деле
@cwgem Sublime Text 2 is written in C++, with some Objective C for Cocoa integration, and Python for plugins

Ссылка
Python там только в плагинах, и то никто не запрещал писать компоненты на C++ и связывать их с Python, я видел минимум один плагин, написанный таким образом.

Хм, мне кажется, что Sublime написан на плюсах, а Python биндится через boost.python для плагинов.
Хотя под Линукс особо выбора-то и нет

Вы перечислили две: Qt Creator + Eclipse,


еще CLion, KDevelop, https://netbeans.org/features/cpp/,


я лично использую emacs + rtags, так уж и нет выбора?

> Разрабатывать на Windows, конечно, удобнее и приятнее

CLion, Eclipse, Qt Creator, это всё отлично работает не только на винде.

Ничем не подкреплённое утверждение. Впрочем, чего я ожидал в этом блоге?
Не сравнимые вещи, IDE и Текстовый редактор.
Куда корректнее сравнивать VsCode и Sublime, например
Читайте «Разрабатывать на Windows, конечно, удобнее и приятнее» как «На linux нет Visual Studio».

Справедливости ради, с отладкой на линуксе и правда не все так приятно. Всегда вспоминается пример с Valve, когда они спросили, чем могут помочь linux сообществу. С большим перевесом победил «Улучшенный отладчик». На хабре было мельком https://habrahabr.ru/post/204836/
НЛО прилетело и опубликовало эту надпись здесь
Здравствуйте, почему у меня при нажатии f5 приходит уведомление «Настроенный тип отладки „cppdbg“ не поддерживается.»? Что нужно сделать?
Опишите подробнее, пожалуйста, на какой системе вы это проделывали.
И если не сложно приложите скрин кода launch.json

Возможно, вы что-то напутали с директивой отладки/сборки
в данной статье описан способ отладки именно на Linux. Настройка с MSBuild несколько выходит за ее рамки. Но все же, если вы хотите отлаживать именно на Windows в VS Code, погуглите подключение MSBuild к VS Code.
1) Это статья для Linux
2) На Windows10 нет встроенного gcc
3) На Windows10 нет встроенного gdb
Вам нужно их поставить отдельно и прописать в переменные среды, но заработает ли, это большой вопрос.
Поищите информацию по использованию компилятора из VS-старшей и подготовки редактора именно для использования на Win10
Хорошо, спасибо
А вы могли бы подсказать, каким примерно должен выглядеть launch.json для С++ на Windows?
Я новичок в этом. Поэтому и сложно разобраться. Думал у Microsoft спросить в онлайн чате, а они убрали эту функцию.
Минутка рекламы. У нас есть официальный чат в Telegram от сообщества Microsoft Developer. Можно спросить там.
На Windows 10.
http://imgur.com/tCHgRlf
И зачем нам на линуксе этот vs code? Кутикриэйтор есть, который лучше вашей студии и на винде-то.
QtCreator — полноценная IDE,
А это текстовый редактор с плагинами
Вы путаете, видимо Visual Studio и Visual Studio Code…
Одна комбайн, другая редактор, не надо так
IDE, а футпринт меньше чем у джаваподелия. Да у нас и редакторы с плагинами есть- вим тот же.
Давайте начистоту, мало кто использует отладчик GDB на Linux в консольном варианте

Я например никого не знаю кто использует GDB не в консоле.

Соглашусь. Более того, далеко не всегда (конечно, из моего личного опыта, не претендую на истину в последних инстанциях) есть возможность в принципе какой-то GUI запустить на Linux машине, где нужен gdb :) Чаще всего это какие-то сервера или встраиваемые системы, на которых консоль и только консоль, ибо большего не требуется) Иногда даже там сам gdb не помещался, только gdb-сервер, и приходилось отлаживать удаленно с другой машины.

Статья же не для такого случая, когда есть только православная консоль.
Я использовал Eclipse + GDB на Ubuntu при отладке user-space кода на внешней ARM-плате. Работа из консоли занимала бы существенно больше времени, и толковая привязка к IDE сэкономила бизнесу в сумме несколько недель, если не месяцев. Когда приходилось пилить модули ядра — дело другое, но даже там был вариант прикрутить к эклипсу KGDB — делать не стал, т.к. объем работ был существенно меньше.
Какой раз уже пытаюсь разобраться с инструкцией на оф. сайте( https://code.visualstudio.com/docs/languages/cpp#_getting-started ), но никак не выходит
Я использую отладчик GDB! Я!

А если серьёзно, то для отладки кода на встраиваемых системах это единственный способ (Beaglebone, Raspberry PI).
Идеально, конечно, иметь GUI отладчик, который позволил бы ещё отлаживать приложение по сети, запущенное на другой машине.
Но увы, пока о таком я не слышал.

Qt Creator умеет заливать и отлаживать приложение на удаленной машине по SSH.
Главное, чтобы на удаленном хосте была поддержка SFTP.


На отлаживаемой машине запускается gdbserver, к которому подключается компьютер с IDE. Собственно я большую часть времени только так и работаю.


Этот способ также работает и для кросс-компиляции, главное правильно сконфигурировать тулчейн

О! Спасибо! Кажется, это то, что я давно искал.

Спасибо, попробую.

Только не очень понял зачем нужен SFTP. Заливать я могу и сам по SSH.
IIRC связка Eclipse / GDB, которую я настраивал в свое время для платы с Freescale Cortex, работала именно по сети (user-space код). Хотя интерфейс был чувствителен к стабильности сети, и когда я сдуру подцепил дефектный сетевой кабель, все превратилось в тыкву.
Могли бы вы сделать такую статью, но только про Windows? Очень нужно, эта программа больше всего привлекает для программирования, поэтому на другую не хочется переходить.
Так на винде всё тоже самое. Только вот нужно ещё установить MinGW(порт gcc)
После установки MinGw файлы .json должны быть такими же как и в статье?

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

Про переменные среды и MinGw вы можете посмотреть тут
https://maxspblogt.wordpress.com/2016/10/05/программирование-в-notepad/
Принцип по которому все будет работать, не сильно отличается:
1) Вы делаете доступным отовсюду компилятор
2) Подаёте ему на вход свой исходник

уже несколько лет пишу параллельно под win/linux. В подавляющем большинстве случаев мне удобнее разрабатывать на linux, потому что:
1. apt install очень удобная штука. Раскидает все утилиты/библиотеки/заголовочные файлы по необходимым путям (не надо будет прописывать эти пути в процессе конфигурации проекта)
2. update-alternatives: system-wide переключение между комплектами сборки однострочником.
3. поддержка стандартов с++ в msvc уступает таковой в gcc/clang
4. нативный API windows ужасен. Скажем, чтобы создать ярлык, нужно около 20 строк кода, в котором пару раз придется обойти ошибку «попытка передать const char * в функцию, принимающую char *» (которая не меняет строку).
5. Куча специфичных мелочей типа симлинков, RPATH, правил линковки, множества стандартных консольных утилит и пр.
6. Воспроизводимость системы (важно при сборке в докере, например)
Разрабатывать на Windows, конечно, удобнее и приятнее,
Это с какого перепугу?!

Относительно недавно я переехал на Linux.
Вот с этого надо было начинать. Попробуй программирование и отладку в Qt Creator, Valgrind и т.п. и потом сравни с VS. В Linux-e гораздо удобнее и приятнее разработка.

Относительно недавно, это ~3 года назад
А на Windows удобнее, чисто имхо, да и интересно выслушать мнение других людей по этому поводу.
Например, я лично уже не один год каждодневно работаю в VS на C#. Но что насчёт QtCreator, он мне показался каким-то муторным, я больше к VS как-то привык. Valgrind — с ним не познакомился так близко, чтобы делать какие-то выводы

Ага, когда boost:: на Linux ставится одной строчкой в консоли, а в винде приходится выкачивать архив, который распакованным занимает 35 гигабайт места на диске и вручную прописывать пути в проекте до библиотеки.


QtCreator более простой, чем MSVS во всех смыслах — и по юзабилити, и по функционалу. К самой студии (если речь про полноценную MSVS2017) у меня претензий нет. Code — по большей части игрушка для хипстеров и проектов < 20-50 файлов.


Valgrind — с ним не познакомился так близко, чтобы делать какие-то выводы

Но именно благодаря ему я нашел несколько отвратительных трудновоспроизводимых (в т.ч. и в зависимости от архитектуры) багов в программе. Он, конечно, не спасет от кривой работы со структурами, но часто может спасти после часов разбора "да откуда же этот segmentation fault лезет"

Хаха дайте ему пару лет. Через года так три, он сам будет смеяться над этим предложением :)

Например, я лично уже не один год каждодневно работаю в VS на C#.
Согласен, самому нравится.

Но что насчёт QtCreator, он мне показался каким-то муторным, я больше к VS как-то привык.
Я наоборот больше привык к QtCreator: поработаешь в нём больше — поймёшь, что навигация по коду в нём гораздо быстрее и удобнее, горячие клавиши гораздо понятнее и проще работают, и меньше нажимать нужно.

VS Code — прекрасен, мое основное средство для разработки MIPSfpga-plus. В одном редакторе одинаково удобно править Verilog, C и asm. Но когда, когда они наконец реализуют memory view???
https://github.com/Microsoft/vscode-cpptools/issues/509

Тоже жду этой фичи, но пока что-то они не сильно торопятся

No sympathy for the devil.

Использую Emacs + gdb + gtags + global.
А вообще, проблемый ребёнок, сразу попался в корпоративные сети Microsoft, и видимо, никогда оттуда не выберется и будет и дальше писать программы в проприетарных загончиках, даже внутри свободных систем.
Для разработки на C/C++ зело хорош slickedit. У него неплохая морда для gdb.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий