Как запустить программу на си ubuntu

В Visual Studio 2022 появился собственный набор инструментов C++ для разработки подсистемы Windows для Linux версии 2 (WSL 2). Этот набор инструментов доступен в Visual Studio 2022 версии 17.0 или более поздней.

WSL 2 — это новая, рекомендуемая версия подсистемы Windows для Linux (WSL). Она позволяет повысить производительность файловой системы Linux, обеспечивает поддержку графического пользовательского интерфейса и полную совместимость системных вызовов. Набор инструментов WSL 2 в Visual Studio позволяет использовать Visual Studio для сборки и отладки кода C++ в дистрибутивах WSL 2 без добавления SSH-подключения. Для создания и отладки кода C++ в дистрибутивах WSL 1 вы можете использовать встроенный набор инструментов WSL 1, представленный в Visual Studio 2019 версии 16.1.

Набор инструментов WSL 2 в Visual Studio поддерживает проекты Linux на основе CMake и MSBuild. CMake рекомендуется для любой кроссплатформенной разработки на C++ с помощью Visual Studio. Рекомендуется использовать CMake, поскольку он позволяет создавать и отлаживать один и тот же проект как в Windows, так и в WSL и удаленных системах.

Компиляция кода на Си с помощью gcc на Linux Mint 20

Видеоролик с информацией, приведенной в этом разделе, см. в статье Видео: отладка C++ с помощью дистрибутивов WSL 2 и Visual Studio 2022.

Базовые сведения о наборе инструментов WSL 2

Кроссплатформенная поддержка C++ в Visual Studio предполагает, что все исходные файлы поступают из файловой системы Windows. При нацеливании на дистрибутив WSL 2, Visual Studio локально выполнит команду rsync для копирования файлов из файловой системы Windows в файловую систему WSL. Для локальной копии rsync не требуется вмешательство пользователя. Это происходит автоматически, когда Visual Studio обнаруживает, что вы используете дистрибутив WSL 2. Дополнительные сведения о различиях между WSL 1 и WSL 2 см. в статье Сравнение WSL 2 и WSL 2.

Набор средств WSL 2 поддерживается интеграцией предварительных установок CMake в Visual Studio. Дополнительные сведения см. в статьях Интеграция предварительных установок CMake в Visual Studio и Visual Studio Code и Настройка и сборка с помощью предустановок CMake в Visual Studio. В этой статье также приводятся более подробные сведения, касающиеся сложных проектов WSL 2 и CMake.

Установка средств сборки

Установите средства, необходимые для сборки и отладки в WSL 2. Вы установите последнюю версию CMake с помощью двоичного развертывания CMake в Visual Studio на следующем шаге.

  1. Установите дистрибутив WSL и WSL 2, следуя инструкциям в разделе Установка WSL.
  2. Если предположить, что дистрибутив использует apt (в этом пошаговом руководстве используется Ubuntu),выполните следующие команды для установки необходимых средств сборки в дистрибутив WSL 2:

sudo apt update sudo apt install g++ gdb make ninja-build rsync zip

  • Компилятора C++
  • gdb
  • CMake
  • rsync
  • zip
  • Базового генератора системы сборки

Кроссплатформенная разработка CMake с помощью дистрибутива WSL 2

В этом пошаговом руководстве используется GCC и Ninja в Ubuntu. А также Visual Studio 2022 версии 17.0 (предварительная версия 2) или более поздней.

C++ первая программа HELLO WORLD в Linux Ubuntu

Visual Studio определяет проект CMake как папку с файлом CMakeLists.txt в корневом каталоге проекта. В этом пошаговом руководстве вы создадите новый проект CMake с помощью шаблона проекта CMake Visual Studio:

  1. В Visual Studio на экране Начало работы выберите Создание нового проекта. Снимок экрана: диалоговое окно
  2. В текстовом поле Поиск шаблонов введите «cmake». Выберите тип Проект CMake и нажмите кнопку Далее. Присвойте проекту имя и выберите расположение, а затем нажмите Создать.
  3. Включите интеграцию предустановок CMake в Visual Studio. Выберите Сервис>Параметры>CMake>Общие. Установите флажок Отдавать предпочтение использованию предустановок CMake для настройки, сборки и тестирования, затем нажмите ОК. Вместо этого можно было добавить файл CMakePresets.json в корневую папку проекта. Дополнительные сведения см. в разделе Включение интеграции предварительных установок CMake. Снимок экрана общих параметров CMake с выделенным и выбранным параметром Use CMake Presets (Использовать предустановки CMake, если они доступны). В противном случае используйте CMakeSettings.json.
  4. Чтобы активировать интеграцию: в главном меню выберите Файл>Закрыть папку. Появится страница Начало работы. В разделе Открыть последние выберите папку, которую вы только что закрыли, чтобы снова открыть ее.
  5. В главном меню Visual Studio есть три раскрывающихся списка. Чтобы выбрать активную целевую систему, используйте раскрывающийся список слева. Это система, в которой будет вызываться CMake для настройки и сборки проекта. Для запроса установки WSL среда Visual Studio использует wsl -l -v . На следующем рисунке в качестве целевой системы выбрано WSL2: Ubuntu-20.04. В раскрывающемся списке Целевая система отображается выбранный WSL2: Ubuntu-20.04.

Примечание Если Visual Studio запускает автоматическую настройку проекта, перейдите к шагу 11 для управления двоичным развертыванием CMake, а затем перейдите к шагу ниже. Сведения о настройке этого поведения см. в разделе Изменение автоматической настройки и уведомлений кэша.

  • В раскрывающемся списке посередине выберите активную предустановку конфигурации. Предустановка конфигурации указывает для Visual Studio способ вызова CMake и создания базовой системы сборки. На шаге 7 в качестве активной предустановки конфигурации используется предустановка linux-default, созданная Visual Studio. Чтобы создать настраиваемую предустановку настройки, выберите Управление конфигурациями. Дополнительные сведения о настройке предустановок см. в разделах Выбор предустановок настройки и Изменение предустановок. Раскрывающийся список
  • В раскрывающемся списке справа выберите активную предустановку сборки. Предустановки сборки сообщают Visual Studio способ вызова сборки. На рисунке шага 7 активной предустановкой сборки является предустановка По умолчанию, созданная Visual Studio. Дополнительные сведения о предустановках сборки см. в разделе Выбор предустановки сборки.
  • Настройте проект в WSL 2. Если создание проекта не запускается автоматически, вручную вызовите configure с параметром Project>Configureproject-name. Раскрывающийся список настройки проекта с выбранным параметром Configure CMakeProject (Настройка CMakeProject).
  • Если в вашем дистрибутиве WSL 2 не установлена поддерживаемая версия CMake, в Visual Studio под лентой главного меню отобразится запрос на развертывание последней версии CMake. Выберите Да, чтобы развернуть двоичные файлы CMake в дистрибутиве WSL 2. Запрос Visual Studio под панелью инструментов с сообщением о том, что поддерживаемая версия cmake отсутствует. Установите последнюю версию двоичных файлов CMake из Cmake.org? Да нет.
  • Убедитесь, что шаг настройки завершен, и что в окне Вывод в области CMake отображается сообщение Создание CMake завершено. Файлы сборки записываются в каталог в файловой системе дистрибутива WSL 2. Окно вывода с сообщением о том, что создание CMake завершено.
  • Выберите активный целевой объект отладки. В раскрывающемся меню отладки перечислены все целевые объекты CMake, доступные для проекта. Раскрывающееся меню отладки с выбранным пунктом CMakeProject.
  • Разверните вложенную папку проекта в обозревателе решений. В файле CMakeProject.cpp задайте точку останова в разделе main() . Перейти к представлению целевых объектов CMake можно также с помощью кнопки выбора представлений в обозревателе решений, выделенной на следующем снимке экрана: Обозреватель решений с кнопкой для переключения представлений. Кнопка находится справа от кнопки дома (дома).
  • Выберите Отладка>Начать или нажмите клавишу F5. Будет выполнена сборка проекта, исполняемый файл будет запущен в дистрибутиве WSL 2, а Visual Studio прервет выполнение в точке останова. Выходные данные программы (в данном случае «Hello CMake.» ) можно просмотреть в окне консоли Linux: Окно консоли Linux с текстом
  • Читайте также:
    Леко программа для построения выкроек отзывы

    Вы создали приложение C++ с помощью WSL 2 и Visual Studio 2022 и выполнили его отладку.

    Дополнительные рекомендации по проектам WSL 2 и CMake

    Visual Studio обеспечивает собственную поддержку WSL 2 только для проектов CMake, которые используют CMakePresets.json в качестве активного файла конфигурации. Сведения о миграции с CMakeSettings.json на CMakePresets.json см. в разделе Включение интеграции предустановок CMake в Visual Studio.

    Если вы настраиваете дистрибутив WSL 2 и не хотите использовать набор инструментов WSL 2, то на карте поставщика удаленных параметров Visual Studio в CMakePresets.json установите для параметра forceWSL1Toolset значение true. Дополнительные сведения см. в статье Карта поставщика удаленных параметров Visual Studio.

    Если параметр forceWSL1Tooslet имеет значение true, то Visual Studio не будет хранить копию исходных файлов в файловой системе WSL. Вместо этого она будет получать доступ к исходным файлам на подключенном диске Windows ( /mnt/ . ).

    В большинстве случаев лучше использовать набор инструментов WSL 2 с дистрибутивами WSL 2, так как WSL 2 работает медленнее, если файлы проекта хранятся в файловой системе Windows. Дополнительные сведения о производительности файловой системы в WSL 2 см. в разделе Сравнение WSL 1 и WSL 2.

    Укажите дополнительные параметры, такие как путь к каталогу в WSL 2, куда будет скопирован проект, параметры копирования источника и аргументы команды rsync, в карте поставщика удаленных параметров Visual Studio в CMakePresets.json . Дополнительные сведения см. в статье Карта поставщика удаленных параметров Visual Studio.

    Системные заголовки по-прежнему автоматически копируются в файловую систему Windows для предоставления собственного интерфейса IntelliSense. Вы можете настроить заголовки, которые включены в эту копию или исключены из нее, в карте поставщика удаленных параметров Visual Studio в CMakePresets.json .

    Можно изменить режим IntelliSense или указать другие параметры IntelliSense в карте поставщика удаленных параметров Visual Studio в CMakePresets.json . Подробные сведения см. в разделе Карта поставщика удаленных параметров Visual Studio.

    Проекты Linux на основе WSL 2 и MSBuild

    CMake рекомендуется для любой кроссплатформенной разработки C++ с использованием Visual Studio, поскольку позволяет создавать и отлаживать один и тот же проект как в Windows, так и в WSL и удаленных системах.

    Но у вас может быть проект Linux на основе MSBuild.

    Если у вас есть проект Linux на основе MSBuild, вы можете выполнить обновление до набора инструментов WSL 2 в Visual Studio. Щелкните правой кнопкой мыши проект в обозревателе решений и выберите Свойства>Общий>набор инструментов платформы:

    Снимок экрана: раскрывающийся список с выбранным набором инструментов платформы, а справа — еще один раскрывающийся список с выбранным набором инструментов WSL2.

    Если вы используете дистрибутив WSL 2 и не хотите использовать набор инструментов WSL 2, в раскрывающемся списке Набор инструментов платформы выберите GCC для подсистема Windows для Linux или Clang для набора инструментов подсистема Windows для Linux. Если выбран один из этих наборов инструментов, Visual Studio не будет хранить копию исходных файлов в файловой системе WSL и вместо этого будет получать доступ к исходным файлам на подключенном диске Windows ( /mnt/ . ). Системные заголовки по-прежнему автоматически копируются в файловую систему Windows для предоставления собственного интерфейса IntelliSense. Настройте заголовки, которые включены в эту копию или исключены из нее, в разделе Страницы свойств>Общие.

    В большинстве случаев лучше использовать набор инструментов WSL 2 с дистрибутивами WSL 2, так как WSL 2 работает медленнее, когда файлы проекта хранятся в файловой системе Windows. Дополнительные сведения см. в разделе Сравнение WSL 1 и WSL 2.

    Источник: learn.microsoft.com

    Как запустить файл cpp в линукс. Программирование на Си (C) в Ubuntu (Linux)

    В прошлой теме было рассмотрено создание первой программы на Windows. Теперь рассмотрим создание первой программы на Linux, в частности, в среде Ubuntu 16.04. На Linux также популярным компилятор для создания программ является g++. Поэтому в данном случае также будем использовать этот компилятор.

    Как правило, многие дистрибутивы Linux, в том числе и Ubuntu, уже по умолчанию содержат установленный компилятор g++, который мы сразу же можем использовать. Но даже если вдруг он не установлен, то его можно доустановить в терминале через команду:

    Sudo apt-get install g++

    В остальном, если мы будем использовать для компиляции компилятор g++, все будет аналогично созданию программы на Windows.

    Определим в файловой системе каталог для исходных файлов с кодом на С++ и создадим в нем новый файл hello.c со следующим кодом:

    #include // подключаем заголовочный файл iostream int main() // определяем функцию main < // начало функции std::cout

    Читайте также:
    Heroes 5 прекращена работа программы

    Данная строка представляет директиву препроцессора, которая позволяет подключить библиотеку iostream. Эта библиотека нужна для вывода строки на консоль.

    Функция main состоит из четырех элементов:

    Тип возвращаемого значения . В данном случае это тип int . Этот тип указывает, что функция должна возвращать целое число.

    Имя функции . В данном случае функция называется main.

    Список параметров . После имени функции в скобках идет список параметров. Но в данном случае скобки пустые, то есть функция main не принимает параметров.

    Тело функции . После списка параметров в фигурных скобках идет тело функции. Здесь и определяются собственно те действия, которые выполняет функция main.

    2. Библиотеки

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

    Библиотеки делятся на два типа:

    • Статические — они связываются с программой на этапе компиляции, они связываются и после этого все функции библиотеки доступны в программе как родные. Такие библиотеки имеют расширение.a;
    • Динамические — такие библиотеки встречаются намного чаще, они загружены в оперативную память, и связываются с программной динамически. Когда программе нужна какая-либо библиотека, она просто вызывает ее по известному адресу в оперативной памяти. Это позволяет экономить память. Расширение этих библиотек — .so, которое походит от Shared Object.

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

    Например, вы пишите программу на Python, используете стандартные возможности этого языка, а сам интерпретатор уже является программой на Си/С++, которая использует системные библиотеки для доступа к основным возможностям. Поэтому важно понимать как работают программы на Си. Конечно, есть языки, вроде Go, которые сразу переводятся на ассемблер, но там используются принципы те же, что и здесь. К тому же системное программирование linux, в основном, это Си или С++.

    3. Процесс сборки программы

    Перед тем как мы перейдем к практике и создадим свою первую программу, нужно разобрать как происходит процесс сборки, из каких этапов он состоит.

    Каждая серьезная программа состоит из множества файлов, это файлы исходников с расширением.c и заголовочные файлы с расширением.h. Такие заголовочные файлы содержат функции, которые импортируются в программу из библиотек или других файлов.с. Перед тем. как компилятор сможет собрать программу и подготовить ее к работе, ему нужно проверить действительно ли все функции реализованы, доступны ли все статические библиотеки и собрать ее в один файл. Поэтому, первым делом выполняется препроцессор, который собирает исходный файл, выполняются такие инструкции, как include для включения кода заголовочных файлов.

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

    Далее к работе приступает компоновщик. Его задача связать объектный модуль со статическими библиотеками и другими объектными модулями. Для каждого исходного файла создается отдельный объектный модуль. Только теперь программа может быть запущена.

    А теперь, давайте рассмотрим весь єтот процесс на практике с использованием компилятора GCC.

    4. Как собрать программу

    Для сборки программ в Linux используется два типа компиляторов, это . Пока что GCC более распространен, поэтому рассматривать мы будем именно его. Обычно, программа уже установлена в вашей системе, если же нет, вы можете выполнить для установки в Ubuntu:

    sudo apt install gcc

    Перед тем как мы перейдем к написанию и сборке программы, давайте рассмотрим синтаксис и опции компилятора:

    $ gcc опции исходный_файл_1.с -o готовый_файл

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

    • -o — записать результат в файл для вывода;
    • -c — создать объектный файл;
    • -x — указать тип файла;
    • -l — загрузить статическую библиотеку.

    Собственно, это все самое основное, что нам понадобится. Теперь создадим нашу первую программу. Она будет выводить строку текста на экран и чтобы было интереснее, считать квадратный корень из числа 9. Вот исходный код:

    int main() printf(«сайтn»);
    printf(«Корень: %fn», sqrt(9));
    return 0;
    >

    gcc -c program.c -o program.o

    Это этап компиляции, если в программе нет ошибок, то он пройдет успешно. Если исходных файлов несколько, то такая команда выполняется для каждого из них. Далее выполняем линковку:

    gcc -lm program.o -o program

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

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

    Читайте также:
    Программа для музыки как у диджея

    Это две библиотеки загрузчика, стандартная libc и libm, которую мы подключили.

    5. Автоматизация сборки

    Когда мы рассматриваем программирование под Linux невозможно не отметить систему автоматизации сборки программ. Дело в том, что когда исходных файлов программы много, вы не будете вручную вводить команды для их компиляции. Можно записать их один раз, а затем использовать везде. Для этого существует утилита make и файлы Makefile. Этот файл состоит из целей и имеет такой синтаксис:

    цель: зависимости
    команда

    В качестве зависимости цели может быть файл или другая цель, основная цель — all, а команда выполняет необходимые действия по сборке. Например, для нашей программы Makefile может выглядеть вот так:

    program: program.o
    gcc -lm program.o -o program

    program.o: program.c
    gcc -c program.c -o program.o

    Затем вам достаточно выполнить команду make для запуска компиляции, только не забудьте удалить предыдущие временные файлы и собранную программу:

    Программа снова готова и вы можете ее запустить.

    Выводы

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

    Курс программирования на Си под Linux:

    Всем привет! Это первая статья о программировании на Си, в котором мы настроим тестовый редактор и узнаем немного о истории языка Си, возможностях, преимуществах и недостатках.

    Языку Си в 2012 году исполнилось 40 лет. Си стал родоначальником C++, Java, Perl, C#, JavaScript и тд. Это самый популярный язык программирования в мире. Си процедурный язык программирования. Файлы кода имеют расширение.c а заголовочные файлы.h. На Си вы можете программировать для Linux, Windows, Windows Phone, Mac OS, iOS, Android и тд.

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

    Так же этим мануалом могут пользоваться пользователи Windows и Mac OS. Пользователи других ОС могут пользоваться например NetBeans в качестве компилятора (NetBeans поддерживает не только Си но и Java, PHP, C++, Python и Ruby)

    Настройка

    Для программирования на понадобится текстовый редактор (gedit) и компилятор (gcc — входит в состав Ubuntu). Компилятор настраивать не нужно, а вот текстовый редактор настроим сейчас.

    Откройте Правка -> Настройки . Установите галочки на следующие пункты:

    • Показывать номера строк;
    • Подсвечивать текущую строку;
    • Подсвечивать парные скобки;
    • Можно так же изменить тему в вкладке Шрифты и цвета.

    Пара выполненных «махинаций» с gedit упростят на работу с текстовым редактором. А в дальнейшем мы рассмотрим какой-нибудь IDE (интегрирования среда разработки).

    Источник: www.tarifox.ru

    Как скомпилировать и запустить программу на C в Linux

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

    Как программа C работает в Linux

    Программный код C сначала компилируется компилятором, который преобразует строковый код в машинный код, который может быть прочитан компьютером. В Linux наиболее распространенным компилятором, используемым для программирования на C, является компилятор GCC, который доступен в репозиторий по умолчанию для многих дистрибутивов Linux, который можно легко установить с помощью пакета apt менеджер:

    $ судо подходящий установить gcc

    После установки пакета GCC пришло время создать файл с помощью редактора nano с имя myfile.c, («.c» — это расширение, которое сообщает компьютеру, что этот файл содержит C программа):

    Напишите простой код на языке C для печати «Hello Linux Hint! ”:

    printf ( «Привет, Linux, мир подсказок ! n ” ) ;

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

    Нажмите CTRL + S, чтобы сохранить файл, и выйдите из редактора, нажав CTRL + X. Перечислите содержимое файла, используя команду ls, чтобы проверить создание файла:

    Файл успешно создается, чтобы скомпилировать файл с помощью компилятора GCC, выполните следующую команду:

    $ gcc myfile.c -о мой файл

    В приведенной выше команде gcc — это компилятор, который компилирует файл, созданный с именем myfile.c, а затем проверяет есть ли у него ошибка или нет, и если ошибки нет, то «myfile» (двоичный файл) будет сгенерирован в том же каталог. Для выполнения бинарного файла используйте:

    В приведенном выше выводе мы видели, что был отображен вывод нашей программы C.

    Заключение

    В эту эпоху информационных технологий все стремятся научиться программированию. Программирование на C рекомендуется новичкам, с которого они могут начать обучение, и, кроме того, программирование на C — это универсальный язык, который можно использовать не только для изучения основ программирования, но и на продвинутом уровне разработки. приложений. В этом посте мы узнали, как компилятор GCC используется в Linux для компиляции программы C. Помимо терминала, существуют различные компиляторы, такие как Visual Studio, основанные на графическом интерфейсе пользователя (GUI), которые можно установить в Linux для компиляции и запуска программ C в Linux.

    Источник: ciksiti.com

    Рейтинг
    ( Пока оценок нет )
    Загрузка ...
    EFT-Soft.ru