Компилируем и запускаем программы C, C++ в Linux
Это краткое руководство объясняет, как компилировать и запускать программы на Си/Си++ в операционной системе GNU/Linux.
Если вы студент или новый пользователь Linux, который переходит с платформы Microsoft, то вам может быть интересно, как запускать программы на Си или Си++ в дистрибутиве Linux. Мы должны понимать, что компиляция и запуск кода на платформах Linux немного отличается от Windows.
Установка необходимых инструментов
Как вы, наверное, уже понимаете, для запуска кода нужно установить необходимые инструменты и компиляторы для работы. Ниже мы опишем как установить все инструменты разработки в Linux.
Для работы и тестирования у нас должен быть сервер с Linux. Лучший вариант — это VPS. В зависимости от географии проекта обычно выбирают две страны для серверов — VPS США и VPS России.
В этом кратком руководстве мы обсудим, как установить средства разработки в такие дистрибутивы Linux, как Arch Linux, CentOS, RHEL, Fedora, Debian, Ubuntu, openSUSE и др.
Эти средства разработки включают в себя все необходимые приложения, такие как компиляторы GNU GCC C/C++, make, отладчики, man-страницы и другие, которые необходимы для компиляции и сборки нового программного обеспечения и пакетов.
Инструменты разработчика могут быть установлены как по отдельности, так и все сразу. Мы собираемся установить все сразу, чтобы нам было намного проще работать.
Установка в Arch Linux
Для установки средств разработки в Arch Linux и его дистрибутивов, таких как Antergos, Manjaro Linux, просто запустите:
Вышеуказанная команда установит следующие пакеты в ваши системы на базе Arch:
Просто нажми ENTER, чтобы установить их все.
Если вы хотите установить пакет в определенную группу пакетов, просто введите его номер и нажмите ENTER, чтобы продолжить установку.
Установка средств разработки в RHEL, CentOS
Для установки средств разработки в Fedora, RHEL и его клонах, таких как CentOS, Scientific Linux, выполните следующие команды как пользователь root:
Вышеуказанная команда установит все необходимые инструменты разработчика, например:
- autoconf
- automake
- bison
- byacc
- cscope
- ctags
- diffstat
- doxygen
- elfutils
- flex
- gcc/gcc-c++/gcc-gfortran
- git
- indent
- intltool
- libtool
- patch
- patchutils
- rcs
- subversion
- swig
Установка инструментов разработки в Debian, Ubuntu и дистрибутивы
Для установки необходимых инструментов разработчика в системах на базе DEB, запустите:
Эта команда предоставит все необходимые пакеты для настройки среды разработки в Debian, Ubuntu и его дистрибутивов.
- binutils
- cpp
- gcc-5-locales
- g++-multilib
- g++-5-multilib
- gcc-5-doc
- gcc-multilib
- autoconf
- automake
- libtool
- flex
- bison
- gdb
- gcc-doc
- gcc-5-multilib
- and many.
Теперь у Вас есть необходимые средства разработки для создания программного обеспечения в Linux.
Скрипт Mangi
Если Вам не нравится метод установки средств разработки выше, есть также скрипт под названием «сценарий манги» (mangi), доступный для легкой настройки среды разработки в DEB-системах, таких как Ubuntu, Linux Mint и других производных Ubuntu.
После свежей установки Ubuntu возьмите этот скрипт из репозитория GitHub, сделайте его исполняемым и начните установку всех необходимых инструментов и пакетов для настройки полной среды разработки. Вам не нужно устанавливать инструменты один за другим.
Этот скрипт установит следующие среды разработки и инструменты на вашу систему Linux:
- Node.js
- NVM
- NPM
- Nodemon
- MongoDB
- Forever
- git
- grunt
- bower
- vim
- Maven
- Loopback
- curl
- python
- jre/jdk
- gimp
- zip unzip and rar tools
- filezilla
- tlp
- erlang
- xpad sticky notes
- cpu checker
- kvm acceleration
- Calibre Ebook Reader (I often use it to read programming books
- Dict – Ubuntu Dictionary Database and Client (CLI based)
Сначала установите следующее:
Скачайте скрипт манги, используя команду:
Извлеките загруженный архив:
Вышеуказанная команда распакует zip-файл в папку под названием mangi-script-master в вашей текущей рабочей директории. Перейдите в каталог и сделайте скрипт исполняемым, используя следующие команды:
Наконец, запустите скрипт с помощью команды:
Пожалуйста, имейте в виду, что этот скрипт не полностью автоматизирован. Вам необходимо ответить на ряд вопросов «Да/Нет» для установки всех инструментов разработки.
Установка инструментов разработки в openSUSE/SUSE
Для настройки среды разработки в openSUSE и SUSE enterprise выполните следующие команды от имени root пользователя:
Проверка установки
Теперь проверим, были ли установлены средства разработки или нет. Для этого запустите:
Как видно из приведенного выше вывода, средства разработки были успешно установлены. Теперь можно начать разрабатывать свои приложения.
Настройка среды разработки
Скрипт под названием ‘mangi’ поможет вам настроить полное окружение в системах на базе Ubuntu.
Еще раз, после установки необходимых средств разработки проверить их можно с помощью одной из следующих команд:
Эти команды покажут путь установки и версию компилятора gcc.
Компиляция и запуск программ C, C++
Сначала посмотрим, как скомпилировать и запустить простую программу, написанную на языке Си.
Компиляция и запуск программ на C
Напишите свой код/программу в любимом редакторе CLI/GUI.
Я собираюсь написать свою программу на Си с помощью редактора nano.
Примечание. Вам необходимо использовать расширение .c для программ на Си или .cpp для программ на Си++.
Скопируйте/вставьте следующий код:
Нажмите Ctrl+O и Ctrl+X для сохранения и выхода из файла.
Чтобы скомпилировать программу, запустите:
Если в вашем коде/программе есть синтаксические или семантические ошибки, они будут отображены. Сначала необходимо их исправить, чтобы двигаться дальше. Если ошибки нет, то компилятор успешно сгенерирует исполняемый файл ostechnix в текущем рабочем каталоге.
Наконец, запустите программу с помощью команды:
Вы увидите вывод, как показано ниже:
Чтобы скомпилировать несколько исходных файлов (например, source1 и source2) в исполняемый файл, запустите:
Для разрешения предупреждений, необходима отладка символов на выходе:
Скомпилировать исходный код в инструкции ассемблера:
Скомпилировать исходный код без связывания:
Вышеприведенная команда создаст исполняемый файл под названием source.o.
Если ваша программа содержит математические функции:
За более подробной информацией обращайтесь к man-страницам (страницы руководства).
Компиляция и запуск программ на C++
Напишите вашу C++ программу в любом редакторе по вашему выбору и сохраните ее с расширением .cpp.
Пример простой C++ программы:
Чтобы скомпилировать эту программу на C++ в Linux, просто запустите:
Если ошибок не было, то можно запустить эту Си++ программу под Linux с помощью команды:
В качестве альтернативы мы можем скомпилировать приведенную выше программу на C++, используя команду «make«, как показано ниже.
Вы заметили? Я не использовал расширение .cpp в вышеприведенной команде для компиляции программы. Нет необходимости использовать расширение для компиляции Си++ программ с помощью команды make.
Запустите, используя команду:
За более подробной информацией обращайтесь к man-страницам.
Программирование на C# в Linux?
Будут ли работать и работать корректно IDE (полноценные версии) Visual Studio
Visual Studio — очень вряд ли, а вот C#-программы созданные в Visual Studio под линуксом запустить можно, с помощью Mono. Года примерно 2-3 назад я так и пытался делать, откровенно говоря, работа с программой собранной в VisualStudio (под виндой) и запущенной под Mono’й в линуксе, чем-то напоминало тестирование альфа-версии windows. Но сам факт, того, что оно запускалось и работало — на лицо. Не знаю, может быть сейчас что-то изменилось к лучшему.
Вместо VisualStudio, разработчики Mono предлагают Вам использовать MonoDevelop. На мой взгляд, сравнивать их не очень разумно, но последний тоже имеет полное право на жизнь.
Но вот вопрос, как обстоят дела с программированием на выше перечисленных языках в этой ОС?
Со всеми остальными языками, кроме C# — дела обстоят на мой взгляд, отлично. Хотя, говоря про C# — я имею в виду полноценную .NET-платформу, с винФормами, WPF и всей прочей дребеденью, к которой Вы возможно уже привыкли работая в VisualStudio/Windows.
PyCharm, SmartGit и другие проги
PyCharm — думаю да, это же от JetBrains штуковина? Все известные мне IDE их производства одинаково хорошо работаю и в Linux и в не Linux :))
Других «прог» там тоже хватает, думаю, касательно программ для работы с Git’ом — у Вас проблем не возникнет.
Какие особенности, чего ждать, к чему готовиться, стоит ли вообще.
Особенности — это кардинально другая ОС, со всеми вытекающими. Другие оболочки рабочего стола, другой внешний вид, другие. «другие» примерно всё, что Вы можете придумать. От принципов разработки ОС до всего остального. Хотя нет, некоторые сходства есть в целом. В линуксе так же есть рабочий стол, нечто напоминающее по смысл кнопку «Пуск», курсор мыши и некоторые другие случайные совпадения с другими ОС.
Стоит ли? — ответ на этот вопрос каждый выбирает для себя сам, лично. Я для себя давно решил, что стоит, чему и рад вполне. Долго сопротивлялся и упрямился линуксу «на рабочем столе», хотя и был довольно большой опыт работы с оным и с FreeBSD ещё с лохматых времен, кода актуальными были FreeBSD-4 и Debian-3. Сейчас Windows стоит на «запасном» диске, т.к. меня там всё ещё держат несколько программ, в т.ч. для обработки звука и фотошопы последних версий. Если бы не это — давно бы сидел в никсах и жил бы спокойно и счастливо.