С/С++ на Linux в Visual Studio Code для начинающих
Давайте начистоту, мало кто использует отладчик GDB на Linux в консольном варианте. Но что, если добавить в него красивый интерфейс? Под катом вы найдёте пошаговую инструкцию отладки кода С/С++ на Linux в Visual Studio Code.

Передаю слово автору.
Относительно недавно я переехал на Linux. Разрабатывать на Windows, конечно, удобнее и приятнее, но и здесь я нашел эффективный способ легко и быстро отлаживать код на С/С++, не прибегая к таким методам как «printf-стайл отладки» и так далее.
Итак приступим. Писать в sublime (или gedit/kate/emacs ), а запускать в терминале — так себе решение, ошибку при работе с динамическим распределением памяти вряд ли найдёшь с первого раза. А если проект трудоёмкий? У меня есть более удобное решение. Да и ещё поддержка Git в редакторе, одни плюсы.
Сегодня мы поговорим про Visual Studio Code.
Установка
OpenSUSE/SLE Based distrs
Расширения для С/С++
Чтобы VS Code полностью сопровождал нас при работе с файлами С/С++, нужно установить расширение «cpptools». Также полезным будет поставить один из наборов сниппетов.
Настоятельно рекомендую включить автосохранение редактируемых файлов, это поможет нам в дальнейшем.
Идём дальше. Открываем любую папку (новую или нет, неважно).
У меня в этой папке уже есть пара файлов для работы с C/C++. Вы можете скопировать одну из своих наработок сюда или создать новый файл.
Шаг 2. Нажимаем Ctrl+Shift+B. VS Code вам мягко намекнет, что он не знает как собирать ваш проект.

Шаг 6. Далее возвращаемся обратно к нашему исходнику. И нажимаем F5 и выбираем C++.

Шаг 8. Всё, больше нам не нужно ничего для начала использования всех благ VS Code. Переходим к основному проекту.
Отладка
Для начала скомпилируем программу (нет, нет, убери терминал, теперь это делается по нажатию Ctrl+Shift+B).

Пришло время для брейкпоинтов. Выберем строчку с «return 0;» и нажимаем F9.

Строчка, помеченная красной точкой слева — место, где остановится программа, при выполнении.
Как я и сказал, программа остановила выполнение. Обратите внимание на окно с локальными переменными.
Удобненько. Также при остановке можно наводить мышкой на переменные и структуры в коде и смотреть их значения.

Также, если на каком-то этапе выполнения вам нужно посмотреть пошаговое выполнение той или иной операции, например в цикле, то поставьте брейкпоинт перед ней и нажмите F10 для выполнения текущей строчки без захода в подпрограмму и F11 с заходом.
Также есть случаи, когда считать выражение очень муторно вручную, но для отладки вам нужно знать, например, значение суммы трех элементов массива, или значение большого логического выражения. Для этого существуют контрольные значения. Все это и многое другое могут показать вам Контрольные значения (или «watch»).
5 лучших редакторов кода для программистов в Linux
Программы для редактирования кода, перечисленные здесь, помогут разработчикам, переходящим на Linux, в разработке новых революционных приложений.
Изучение программирования может быть сложным, но подходящие инструменты немного облегчают процесс. Начав писать прекрасный код, вы можете так увлечься, что забудете обо всем на свете. Но этот волнующий опыт может быть испорчен неправильным инструментарием. Если говорить о машинах, MacBook, пожалуй, лучший выбор для разработчиков, проводящих часы за сплетением кода. Кроме Mac OS, запускаемой на MacBook, есть еще одна платформа, подходящая для создания приложений, и это Linux.
На протяжении многих лет Linux развивается и расширяется, отвоевывая долю рынка у Windows. Благодаря усилиям сообщества сегодня существует множество дистрибутивов Linux для самых разных нужд.
Есть даже дистрибутивы, созданные для разработчиков. Однако вам не обязательно переходить на них чтобы использовать редакторы кода из этой статьи.
Эти программы повысят вашу продуктивность благодаря своим продуманным свойствам.
1. Atom
Atom это редактор с открытым исходным кодом, разработанный GitHub. Он подойдет любому разработчику, от нуба до эксперта. Самое большое преимущество Atom заключается в его настраиваемости для любых потребностей и одновременно в возможности начать работу сразу же, не заглядывая в конфиги.
Atom предлагает несколько вариантов настройки для изменения внешнего вида и поведения по вашему вкусу. Если вы знакомы с HTML и JS, вы можете даже наладить вид и поведение внеся некоторые изменения в UI. Все эти свойства делают Atom лидером нашего списка.
Особенности редактора кода Atom
Установка Atom в Linux
Если вы используете Ubuntu или его производные, вы можете установить Atom с помощью PPA, запустив следующие команды:
2. Sublime Text 3
Sublime Text — самый распространенный в сообществе разработчиков редактор кода для Linux. Это легковесный и несложный редактор кода. Sublime Text строится из пользовательских компонентов, что обеспечивает непревзойденную отзывчивость. Благодаря мощному настраиваемому кросс-платформенному инструментарию пользовательского интерфейса с непревзойденным механизмом подсветки синтаксиса Sublime Text высоко устанавливает планку производительности.
Эта программа может использоваться в качестве простого текстового редактора и подсветкой синтаксиса. Подключив дополнительные плагины, вы можете так расширить его функциональность, что он будет способен практически на все, на что способны IDE. Кроме этого в Sublime Text предлагается множество вариантов настройки. Сочетания клавиш, меню, сниппеты, макросы, расширения и многое другое – практически все в Sublime Text настраивается с помощью обычных JSON-файлов. Эта система дает вам гибкость, поскольку настройки могут быть различными для разных типов файлов или разных проектов.
Особенности Sublime Text 3
Вот некоторые из лучших свойств этого редактора:
Установка Sublime Text в Linux
Стабильную версию Sublime Text 3 можно инсталлировать, введя в терминале команды, указанные ниже. Этот способ подходит для дистрибутивов, основанных на Ubuntu и Debian. Если вы используете другие дистрибутивы, такие как Fedora, Arch и Suse, обратитесь к этой странице за инструкциями по установке.
3. Vim
Vim – усовершенствованная версия vi, программы-редактора, поставляемой в большинстве UNIX-систем. Vim часто и вполне заслуженно называют «программистским» редактором. Он очень реконфигурируемый и очень полезен в программировании, поэтому многие считают его целой IDE. Конечно, он подходит не только программистам. Vim отлично справляется с любой редактурой кода, от составления электронных писем до редактирования конфигурационных файлов.
Vim можно использовать как отдельное приложение или запускать в командной строке (это одна из первых программ, приходящих на ум в качестве редактора командной строки).
Особенности Vim
Установка VIM в Linux
Есть несколько способов установить Vim в Linux. Существуют различные инсталляционные файлы, но здесь мы покажем установку через PPA-репозиторий.
Кстати, для облегчения изучения редактора можно запускать vimtutor — пособие и программу для отработки навыков работы.
4. Brackets
Brackets это современный, популярный редактор кода от Adobe, доступный в Linux. Он бесплатен в отличие от другого программного обеспечения Adobe. Если вы веб-разработчик, то вам особенно подойдет Brackets, поскольку он создан с учетом нужд разработки. У этого редактора есть несколько особенностей, которые могут быть расширены дополнительными плагинами. В Adobe работали над Brackets с тем чтобы создать лучший современный редактор кода под Linux.
Brackets после установки уже имеет все функции, обязательные для современного текстового редактора. Основан он на JavaScript.
Особенности текстового редактора Brackets
Скачивание и установка Brackets
5. Редактор Bluefish
Bluefish это больше чем редактор кода. Он кажется скорее современной IDE, как Eclipse и Netbeans. Со своим большим набором функций он может делать практически все то же, что и IDE. Одна интересная особенность Bluefish – интеграция со сторонними программами. Bluefish универсален в плане поддержки различных языков. Он поддерживает Ada, ASP.NET, VBS, C/C++, CSS, CFML, Clojure, D, gettextPO, Google Go, HTML, XHTML, HTML5, Java, JSP, JavaScript, jQuery и Lua.
Особенности Bluefish
Вот некоторые свойства, выделяющие этот редактор кода из общего ряда:
Установка Bluefish
Чтобы установить Bluefish в Ubuntu или основанных на этой ОС дистрибутивах можно запустить следующие команды:
Заключение
Разработчики часто расходятся во мнениях относительно лучшего редактора кода как в целом, так и конкретно для Linux. Приведенные в данной статье редакторы отобраны на основе их производительности, удобства использования и возможностей кастомизации. Вы можете выбрать тот, который больше вам подходит, как из этого списка, так и из не вошедших в него.
🐧 Как скомпилировать и запустить программы на C, C++ в Linux
Настройка среды разработки
После установки необходимых инструментов разработки проверьте их с помощью одной из следующих команд:
Компиляция и запуск программ на C, C ++ на Linux
Напишите свой код / программу в вашем любимом редакторе CLI / GUI.
Я собираюсь написать свою программу на C, используя редактор nano.
Если ошибки нет, компилятор успешно сгенерирует исполняемый файл с именем itisgood в текущем рабочем каталоге.
Наконец, выполните программу, используя команду:
Вы увидите вывод, как показано ниже:
Чтобы разрешить предупреждения, отладьте символы в выводе:
Чтобы скомпилировать исходный код без ссылок:
Приведенная выше команда создаст исполняемый файл с именем source.o.
Если ваша программа содержит математические функции:
Для более подробной информации обратитесь к справочным страницам.
Компиляция и запуск программ C ++
Вот простая программа на C ++.
Чтобы скомпилировать эту программу C ++ в Linux, просто запустите:
Если ошибок не было, вы можете запустить эту программу C ++ под Linux, используя команду:
Вы увидите вывод, как показано ниже:
Нет необходимости использовать расширение для компиляции программ на C ++ с помощью команды make.
Для более подробной информации обратитесь к справочным страницам.
Надеюсь все было достаточно просто и понятно! 🙂
Добавить комментарий Отменить ответ
• Свежие записи
• Категории
• itsecforu.ru
• Страны посетителей
IT is good
Visual C++ for Linux Development: Практика использования для Windows разработчиков
Так получилось, что за достаточно долгую карьеру Windows и Embedded разработчика судьба свела меня по серьезному с Linux всего лишь несколько месяцев назад. Нужно было написать не очень сложную консольную программу. На тот момент все мои знания о Linux были взяты из курса по операционным системам в вузе (10 лет назад). Но Stackoverflow, google и опыт позволили достаточно быстро справиться с задачей. В итоге все было написано в Visual Studio Code под Ubuntu 14.04. Правда, приложение под Linux являлось только лишь небольшим клиентом для Windows сервера. Поэтому результат не очень удовлетворял меня, так как был оторван от основного проекта в Visual Studio. И только сейчас я смог перенести код в основной проект с помощью Visual C++ for Linux Development. В процессе мне пришлось решить несколько сопутствующих проблем. Об этом я рассажу под катом.
Итак, Visual C++ for Linux Development — это расширение для Visual Studio, позволяющее писать код в привычной многим IDE под Windows, а отлаживать его прямо в целевой операционной среде — Linux. При этом используется GCC и Remote GDB Debugger. Более подробно о расширении можно прочитать в блоге разработчиков или в переводе на хабре.
Инструкции того, как установить, запустить, настроить и т.д. можно найти по ссылкам выше. У меня с этим не возникло никаких проблем. Вопросы начались со стороны Linux системы. Напомню, что я использую Ubuntu 14.04 LTS и дальнейшее изложение пойдет именно про нее. Если кому интересно, я использовал образ для VirtualBox с сайта osboxes.org.
Также, прошу сильно меня не ругать, я все-таки в Linux далеко не гуру. Лучше подскажите, если что-то можно сделать более оптимальным путем.
Отладка первой программы
Перед тем, как использовать удаленную отладку, нужно установить несколько компонентов на Linux системе. Как указано в инструкциях по ссылке выше, это можно сделать, выполнив в командной строке следующее:
Вызвать терминал в Ubuntu можно комбинацией клавиш Ctrl+Alt+T.
Я не помню, запускается ли все это хозяйство сразу или нет, по этому на всякий случай можно перезагрузиться.
Но сразу подключиться из-под Visual Studio у меня не удалось, так как система почему то не пускала меня под единственным пользователем. Пришлось создать другого. Это можно сделать в System Settings → User Account.
При этом, не забыв нажать кнопку Unlock в верхнем правом углу.
Настроить подключения в Visual Studio можно в окне Tools → Options
Теперь можно запустить и отладить тестовый проект.
При этом в Ubuntu будут скопированы исходники и собранный файл программы (если это не отключено в настройках проекта). Все это можно будет найти в папке /home/ /projects.
В моем случае получилось вот так:
Запустить программу в самом Linux можно из консоли:
Теперь вроде бы можно начинать работать. Я перенес исходные файлы в Visual Studio и… ничего у меня не скомпилировалось. Оказалось, что проекту не достает .h файлов из include directories.
Подключаемые файлы
Вместе с Visual C++ for Linux Development устанавливается и множество заголовочных файлов. Их можно найти тут:
Но моему проекту этого не хватило.
В блоге разработчиков по этому поводу сказано следующее:
В будущем эту проблему обещают решить, ну а сейчас крутитесь как хотите. Там же приведен пример с копированием директории всей /usr/include с помощью PuTTY.
Но мне такой путь не нравится. Лично я предпочитаю расшарить папку с заголовочными файлами. Список директория для поиска include файлов можно посмотреть, выполнив в консоли команды
После этого можно открыть доступ к папке. Как это сделать написано тут.
После этого, сетевые пути можно прописать в Visual Studio как Include Directories.
Такой подход имеет преимущество в виде того, что вы будете работать всегда с оригинальными заголовочными файлами и вам не нужно будет ничего синхронизировать. С другой стороны, будут проблемы при переносе разработки на другой компьютер. Также, как я уже писал, я работаю с Ubuntu, установленной на виртуальной машине на моем компьютере. При такой конфигурации, проблемы с безопасностью уходят на второй план.
Но в других конфигурациях, действия, описанные мной выше, могут быть запрещены.
Таким образом, проблему синхронизации заголовочных файлов нужно решать исходя из условий работы. Тут выбор остается за вами.
Дополнительные команды компилятора и линкера
Для этих целей в Visual C++ for Linux Development есть специальная настройка:
Но у меня почему то она не работает. Проблема эта временная (разработчики уже знают об этом), но решать ее нужно здесь и сейчас. Обойти это ошибку можно используя другую опцию:
Тот же трюк срабатывает и для компилятора.
Запуск отладки с правами администратора
Теперь все скомпилировалось и слинковалось. Однако для работы программы нужны повышенные права, так как она открывает файл устройства ввода. Соответственно, отладку также нужно запускать с правами администратора. Сейчас в Visual C++ for Linux Development эта опция не реализована, но есть одно решение.
Можно повысить в правах gdb и gdbserver командами
Такой совет можно найти в комментариях в посту в блоге разработчиков.
Этот трюк работает, но он не безопасен. По сути, вы отдаете свою систему любому, кто подключается к gdbservr. В моей конфигурации это не страшно, так как все запущено на одном моем компьютере, но в других условиях нужно быть очень аккуратными с такими действиями.
Копирование дополнительных файлов
И остался последний момент. Моя программа читает настройки из текстового файла. Он является частью проекта Visual Studio и при компиляции должен копироваться в папку с исполняемым файлом.
Это можно также сделать в настройках проекта:
Чтобы просто скопировать файл, как остальные исходники, его можно добавить в поле Sources To Copy: @(SourcesToCopyRemotely);config.txt
А скопировать его в другую директорию можно с помощью Additional Sources To Copy.
Формат этой настройки
fulllocationpath1:=fullremotepath1;fulllocationpath2:=fullremotepath2
и т.д.
В моем случае такая строка выглядит так:
Судя по всему, этот путь завязан с этой настройкой:
Так вот, при компиляции все работает хорошо. Но вот при копировании файлов почему то
воспринимается не как root директория, а просто как имя папки. То есть создается папка с именем «
Что в итоге
Лично я могу сказать, что Visual C++ for Linux Development extension мне помог. Несмотря на все проблемы и пару багов, он позволил мне быстрее и эффективнее решить задачу, связанную с разработкой под Linux.
Наверное, можно на это возразить, что есть более удобные пути, но я исходил только из своего опыта и знаний, а все это в основном связано с Windows.
10 лучших открытых инструментов для разработчика в Linux
«Linux может быть великолепной средой для разработки программного обеспечения, но вам нужны правильные инструменты, чтобы использовать его на полную мощность», — говорит Джек Валлен (Jack Wallen).
Без надёжных инструментов разработки вы не сможете воспользоваться лучшими преимуществами Linux. К счастью, Linux и открытое инструментальное программное обеспечение легко доступно. Однако, если вы новый пользователь, вы можете не знать, какие утилиты лучше выбрать, так что вот 10 выдающихся инструментов, которые помогут поднять вашу разработку на другой уровень.
1. Bluefish
Bluefish — одна из популярнейших интегрированных сред разработки, доступных для работы в вебе. Bluefish может обрабатывать языки программирования и языки разметки, но фокусируется на создании динамических и интерактивных веб-сайтов. Как и многие приложения для Linux, Bluefish быстр и лёгок — он использует примерно 30‒40 процентов ресурсов, потребляемых аналогичными приложениями.
Bluefish может открывать несколько документов одновременно: до 3 500 документов, если необходимо. Он включает в себя поддержку проекта, удалённую поддержку файлов, поиск и замену (включая регулярные выражения), неограниченную отмену/принятие сделанных изменений, настраиваемую подсветку синтаксиса для многих языков, сглаживание текста в окнах, а также поддержку различных кодировок.
Одной из лучших особенностей Bluefish является Quickbar — пользовательская панель, которая позволяет вам добавлять кнопки путём кликания по правой клавише мыши и выбора пункта «Добавить в Quickbar» (Add To Quickbar). Вы можете добавлять в Quickbar любую HTML-кнопку.
В Bluefish есть ряд простых инструментов, которые помогут вам добавить различные элементы в ваш код. Нужен auto-submit select box в DHTML? Легко. Выберите «Auto-submit Select Box» из выпадающего списка «DHTML» и заполните необходимые пункты для добавления элемента в ваш код. В Bluefish есть мастера для Си, Apache, DHTML, DocBook, HTML, PHP+HTML и SQL. Если вы разрабатываете свои сайты вручную, то без Bluefish вам не обойтись.
2. Anjuta
Anjuta — свободная открытая интегрированная среда разработки для языков Си и C++. Anjuta мощна и проста в установке (например, команда urpmi anjuta в Mandriva Linux). Anjuta предлагает такие функции, как управление проектами, прикладные мастера, интерактивный отладчик и мощный редактор исходного кода — с просмотром кода, его автозаполнением и подсветкой синтаксиса.
Anjuta имеет гибкий интерфейс пользователя, который позволяет вам перемещать (drag-and-drop) инструменты в набор инструментов для организации интерфейса пользователя в вариант, который вам больше нравится. Плюс каждый размещённый пользователем набор инструментов постоянен для проекта, так что вы можете иметь различные наборы инструментов для каждого проекта.
Anjuta также имеет мощную систему плагинов, которая позволяет вам решать для каждого проекта какие плагины активны, а какие — нет. И, как во всех открытых проектах, вы можете сами разработать свои плагины для Anjuta.
Одним из самых мощных инструментов в Anjuta является менеджер проекта. Он не только может открывать почти все проекты, основанные на Automake и Autoconf; он не добавляет никакой информации, связанной с Anjuta, так что ваш проект также может обслуживаться и разрабатываться вне Anjuta.
3. Glade
Glade — это RAD-инструмент, используемый для создания инструментария GTK+ и для среды рабочего стола GNOME. Его интерфейс подобен GIMP и может быть настроен и даже встроен в Anjuta.
Glade включает в себя ряд шаблонов, таких как текстовые блоки, диалоги, чекбоксы и меню, созданных для ускорения разработки интерфейсов. Конструкции интерфейса хранятся в XML, который позволяет им быть легко связанным со внешними инструментами.
4. GCC
GCC — это набор компиляторов для Си, C++, Objective-C, Фортрана, Java и Ады, разработанный в рамках проекта GNU. Это инструмент командной строки, но он очень мощен. Многие интегрированные среды разработки имеют инструменты, которые являются только front-end’ами для GCC. Наиболее часто используются компиляторы для кода на Си и C++.
Как один инструмент компилирует приложения на разных языках? Просто: для Си вы применяете команду gcc, а для C++ вы применяете команду g++ — два компилятора в одном инструментарие. И g++ — компилятор, а не просто препроцессор.
GCC построит объектный код из исходного кода без использования посредника. Этот метод создаёт лучший объектный код и даёт вам больше отладочной информации.
5. Kdevelop
Kdevelop был создан в 1998 году как простая в использовании интегрированная среда разработки для среды рабочего стола KDE. Kdevelop в настоящее время распространяется под лицензией GNU General Public License и свободен для использования.
Он основан на плагинах, так что вы можете добавлять и удалять их для создания точно того, что вы хотите. Kdevelop также включает в себя поддержку профилей, так что различные наборы плагинов могут быть ассоциированы с конкретными проектами.
Kdevelop поддерживает 15 языков программирования, каждый из которых имеет свои языковые особенности. Он также предлагает отладчик, систему управления версиями Subversion, мастера приложений, просмотрщик документации, управление сниппетами, интеграцию Doxygen, инструменты RAD, поддержку Ctags, переформатирование кода, поддержку QuickOpen и панель окон с панелью инструментов.
Одной из лучших особенностей Kdevelop является то, что он снимает множество низкоуровневых задач из рук пользователей. Kdevelop включает в себя менеджер Automake.
Ещё один полезный штрих заключается в том, что можно мгновенно видеть различие между ошибками, предупреждениями и сообщениями.
6. GDB
GDB не является инструментом для разработчиков, но этот инструмент многие разработчики считают для себя важным. GDB — это отладчик проекта GNU.
7. KompoZer
KompoZer — простой в использовании WYSIWYG-инструмент, направленный на нетехнических пользователей, которые хотят создать профессиональный веб-сайт без знания HTML.
KompoZer имеет ряд выдающихся особенностей. Одной из лучших особенностей является возможность открыть веб-сайт из URL, редактировать этот сайт и загрузить отредактированный сайт. Эта особенность упрощает обновление сайтов, лишая необходимости редактировать HTML. Конечно же, вам потребуется разрешение на загрузку сайта. Эта особенность также хороша для использоваия других сайтов в качестве шаблонов.
KompoZer не следует рассматривать только как инструмент для начинающих. Думайте о нём как о бесплатной открытой замене Microsoft FrontPage и Adobe Dreamweaver. И, как его более дорогостоящие альтернативы, в KompoZer можно перемещаться между WYSIWYG и редактированием кода путём кликания по табу.
8. Eclipse
Eclipse — мультиязычная интегрированная среда разработки, написанная на Java, с обширной системой плагинов, позволяющей вам расширить функциональность. Скачиваемый более миллиона раз ежемесячно, Eclipse — одно из сильнейших решений в области разработки программного обеспечения. Это, по сути, стандарт для открытой разработки.
Предположительно, сильнейшим аспектом Eclipse является особенность плагинов. Только для языков в Eclipse создано 58 плагинов. На этих языках не говорят — это языки разработки. Eclipse имеет огромное сообщество и множество организаций, предлагающих обучение интегрированным средам разработки, которое включает в себя даже университет Eclipse.
9. Make
Make — это утилита Linux, которая может автоматически определить, какие части программы нужно перекомпилировать. После того, как Make работает в частях, которые должны быть перекомпилированы, он выдаёт команды, необходимые для завершения действия.
Make часто используется при установке приложений из исходного кода, так что разработчики открытых приложений должны иметь хорошее представление об этом инструмение и о том, как он используется. Если вы планируете разработку приложения, которое можно будет установить из исходного кода, вам нужно знать как создавать Makefile.
Этот Makefile описывает отношения между разными файлами. Если вы знакомы с установкой приложений, вы знаете строковый тип ./configure; make; make install.
10. Quanta Plus
Quanta Plus — другой инструмент HTML для разработки, похожий на KompoZer. Он способен как на WYSIWYG, так и на ручной режим и поддерживает HTML, XHTML, CSS, XML и PHP.
Особенности Quanta Plus заключаются в завершении тегов на лету, управлении проектами, быстром предварительном просмотре, отладчике PHP, поддержке CVS и Subversion. Quanta Plus, в отличие от KompoZer, направлен на более опытного пользователя, который хочет хороший редактор WYSIWYG.
А что используетет вы?
Какие советы и мнения вы можете дать, основываясь на своём опыте, по инструментам, которые мы рассмотрели? Или у вас есть любимая свободная интегрированная среда разработки, которая не включена в этот список?

















IT is good


