Средствами, традиционно используемыми для создания программ для открытых операционных систем, являются инструменты разработчика GNU. Сделаем маленькую историческую справку. Проект GNU был основан в 1984 году Ричардом Столлманом.
Его необходимость была вызвана тем, что в то время сотрудничество между программистами было затруднено, так как владельцы коммерческого программного обеспечения чинили многочисленные препятствия такому сотрудничеству. Целью проекта GNU было создание комплекта программного обеспечения под единой лицензией, которая не допускала бы возможности присваивания кем-то эксклюзивных прав на это ПО. Частью этого комплекта и является набор инструментов для разработчика, которым мы будем пользоваться, и который должен входить во все дистрибутивы Linux.
Одним из этих инструментов является компилятор GCC. Первоначально эта аббревиатура расшифровывалась, как GNU C Compiler. Сейчас она означает – GNU Compiler Collection. Создадим первую программу с помощью GCC. По сложившейся традиции первая программа будет просто выводить в консоли приветствие «Hello world!» – «Здравствуй Мир!».
Работа с компилятором GCC C++ в Linux.
Файлы с исходными кодами программ, которые мы будем создавать, это обычные текстовые файлы, и создавать их можно с помощью любого текстового редактора (например GEdit KWrite, Kate, а также более традиционные для пользователей Linux – vi и emacs). Помимо текстовых редакторов, существуют специализированные среды разработки со своими встроенными редакторами.
Одним из таких средств является KDevelop. Интересно, что в нём есть встроенный редактор и встроенная консоль, расположенная прямо под редактором. Так что можно прямо в одной программе, не переключаясь между окнами, и редактировать код и давать консольные команды. Создайте отдельный каталог hello. Это будет каталог нашего первого проекта. В нём создайте текстовый файл hello.c со следующим текстом:
Затем в консоли зайдите в каталог проекта. Наберите команду Теперь посмотрите внимательно, что произошло. В каталоге появился новый файл a.out. Это и есть исполняемый файл. Запустим его. Наберите в консоли: Программа должна запуститься, то есть должен появиться текст: Компилятор gcc по умолчанию присваивает всем созданным исполняемым файлам имя a.out.
Если хотите назвать его по-другому, нужно к команде на компиляцию добавить флаг -o и имя, которым вы хотите его назвать. Давайте наберём такую команду: gcc hello.c -o hello Мы видим, что в каталоге появился исполняемый файл с названием hello. Запустим его. Как видите, получился точно такой же исполняемый файл, только с удобным для нас названием.
Флаг -o является лишь одним из многочисленных флагов компилятора gcc. Некоторые другие флаги мы рассмотрим позднее. Чтобы просмотреть все возможные флаги, можно воспользоваться справочной системой man. Наберите в командной строке: Перед вами предстанет справочная система по этой программе. Просмотрите, что означает каждый флаг. С некоторыми из них мы скоро встретимся.
Компиляция кода на Си с помощью gcc на Linux Mint 20
Выход из справочной системы осуществляется с помощью клавиши q. Вы, конечно, обратили внимание, что, когда мы запускаем программу из нашего каталога разработки, мы перед названием файла набираем точку и слэш. Зачем же мы это делаем?
Дело в том, что, если мы наберём только название исполняемого файла, операционная система будет искать его в каталогах /usr/bin и /usr/local/bin, и, естественно, не найдёт. Каталоги /usr/bin и /usr/local/bin – системные каталоги размещения исполняемых программ. Первый из них предназначен для размещения стабильных версий программ, как правило,входящих в дистрибутив Linux.
Второй – для программ, устанавливаемых самим пользователем (за стабильность которых никто не ручается). Такая система нужна,чтобы отделить их друг от друга. По умолчанию при сборке программы устанавливаются в каталог /usr/local/bin. Крайне нежелательно помещать что-либо лишнее в /usr/bin или удалять что-то оттуда вручную, потому что это может привести к краху системы.
Там должны размещаться программы, за стабильность которых отвечают разработчики дистрибутива. Чтобы запустить программу, находящуюся в другом месте, надо прописать полный путь к ней, например так: Или другой вариант: прописать путь относительно текущего каталога, в котором вы в данной момент находитесь в консоли.
При этом одна точка означает текущий каталог, две точки – родительский. Например, команда ./hello запускает программу hello, находящуюся в текущем каталоге, команда ../hello – программу hello, находящуюся в родительском каталоге, команда ./projects/hello/hello – программу во вложенных каталогах, находящихся внутри текущего.
Есть возможность добавлять в список системных путей к программам дополнительные каталоги. Для этого надо добавить новый путь в системную переменную PATH. Но давайте пока не будем отвлекаться от главной темы. Переменные окружения – это отдельный разговор.
Теперь рассмотрим, что же делает программа gcc. Её работа включает три этапа: обработка препроцессором, компиляция и компоновка (или линковка). Препроцессор включает в основной файл содержимое всех заголовочных файлов, указанных в директивах #include. В заголовочных файлах обычно находятся объявления функций, используемых в программе, но не определённых в тексте программы.
Их определения находятся где-то в другом месте: или в других файлах с исходным кодом или в бинарных библиотеках. Вторая стадия – компиляция. Она заключается в превращении текста программы на языке C/C++ в набор машинных команд. Результат сохраняется в объектном файле.
Разумеется, на машинах с разной архитектурой процессора двоичные файлы получаются в разных форматах, и на одной машине невозможно запустить бинарник, собранный на другой машине (разве только, если у них одинаковая архитектура процессора и одинаковые операционные системы). Вот почему программы для UNIX-подобных систем распространяются в виде исходных кодов: они должны быть доступны всем пользователям, независимо от того, у кого какой процессор и какая операционная система.
Последняя стадия – компоновка. Она заключается в связывании всех объектных файлов проекта в один, связывании вызовов функций с их определениями, и присоединением библиотечных файлов, содержащих функции, которые вызываются, но не определены в проекте. В результате формируется запускаемый файл – наша конечная цель.
Если какая-то функция в программе используется, но компоновщик не найдёт место, где эта функция определена, он выдаст сообщение об ошибке, и откажется создавать исполняемый файл. Теперь посмотрим на практике, как всё это выглядит. Напишем другую программу. Это будет примитивнейший калькулятор, способный складывать, вычитать, умножать и делить.
При запуске он будет запрашивать по очереди два числа, над которыми следует произвести действие, а затем потребует ввести знак арифметического действия. Это могут быть четыре знака: «+», «–», «*», «/». После этого программа выводит результат и останавливается (возвращает нас в операционную систему, а точнее – в командный интерпретатор, из которого мы программу и вызывали). Источник
Установка GCC в Ubuntu
Большинство программ в Linux написаны на Си или С++, и если вы хотите собирать их из исходников, то вам обязательно понадобиться компилятор, также он понадобиться, если захотите начать писать свои программы на одном из этих языков.
Существует два основных компилятора в Linux — это GCC и Clang, они похожи по своим возможностям, но так сложилось, что первый считается стандартом для Ubuntu. GCC расшифровывается как GNU Compiler Collection. В этой статье мы рассмотрим как выполняется установка GCC в Ubuntu, а также рассмотрим базовые приемы работы с этим набором программ в терминале.
Набор компиляторов GCC
- libc6-dev — заголовочные файлы стандартной библиотеки Си;
- libstdc++6-dev — заголовочные файлы стандартной библиотеки С++;
- gcc — компилятор языка программирования Си;
- g++ — компилятор языка программирования C++;
- make — утилита для организации сборки нескольких файлов;
- dpkg-dev — инструменты сборки пакетов deb.
Все эти пакеты являются зависимостями пакета build-essential, поэтому для установки всего необходимого достаточно установить этот пакет.
Установка GCC в Ubuntu
Если вас устраивает текущая версия GCC, которая есть в официальных репозиториях дистрибутива, то вам достаточно установить пакет build-essential. Для этого выполните команду:
sudo apt install build-essential
После завершения выполнения все необходимое для компиляции программ будет установлено. И вы сможете использовать компилятор ubuntu. Давайте посмотрим версии и расположение компиляторов:
Но если вы хотите более новую версию компилятора, например, на данный момент последняя версия — 6.2, то можно использовать PPA разработчиков с тестовыми сборками. Для добавления PPA в систему выполните:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
Затем установите сами компиляторы:
sudo apt install gcc-snapshot
sudo apt install gcc-6 g++-6
Это не заменит ваш текущий компилятор на новый. В системе просто появятся компиляторы gcc-6 и g++-6, которые вы можете использовать для своих программ. Это лучший вариант на данный момент, но если вы хотите все же сделать gcc-6 компилятором по умолчанию, выполните:
sudo update-alternatives —install /usr/bin/gcc gcc /usr/bin/gcc-6 60 —slave /usr/bin/g++ g++ /usr/bin/g++-6
Готово, теперь вы можете проверить версию gcc-6:
Установка GCC в Ubuntu завершена, и можно переходить к сборке программ. Для удаления компилятора достаточно удалить пакет build-essential:
sudo apt purge build-essential
sudo apt autoremove
А чтобы заменить новую версию обратно, установите и замените настройки программ по умолчанию:
sudo apt-get install gcc-4.8 g++-4.8
sudo update-alternatives —install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 —slave /usr/bin/g++ g++ /usr/bin/g++-4.8;
Использование GCC в Ubuntu
Давайте рассмотрим пример компиляции минимальной программы hello.c для освоения работы с gcc. Вот код программы, сохраните его в файле hello.c:
include
int main(void)
Теперь запустим сборку программы:
Когда сборка программы будет завершена, вы можете ее запустить:
Готово, компилятор прекрасно работает в системе, и теперь вы можете писать свои программы или собирать чужие.
Выводы
В этой статье мы рассмотрели как установить gcc в Ubuntu, это один из самых популярных компиляторов для этой операционной системы. И устанавливается он очень просто, если у вас остались вопросы, спрашивайте в комментариях!
На завершение видео с демонстрацией самого процесса:
Источник: onecomp.ru
Как установить GCC (необходимое для сборки) на Ubuntu 20.04
Коллекция компиляторов GNU (GCC) — это набор компиляторов и библиотек для языков программирования C, C ++, Objective-C, Fortran, Ada, Go и D. Многие проекты с открытым исходным кодом, включая ядро Linux и инструменты GNU, скомпилированы с использованием GCC.
В этой статье объясняется, как установить GCC в Ubuntu 20.04.
Установка GCC в Ubuntu 20.04
Репозитории Ubuntu по умолчанию содержат метапакет с именем «build-essential», который включает коллекцию компиляторов GNU, отладчик GNU и другие библиотеки и инструменты разработки, необходимые для компиляции программного обеспечения.
Чтобы установить пакеты средств разработки, выполните следующую команду от имени пользователя root или пользователя с правами sudo :
sudo apt updatesudo apt install build-essential
Команда устанавливает множество пакетов, включая gcc , g++ и make .
Вы также можете установить справочные страницы об использовании GNU / Linux для разработки:
sudo apt-get install manpages-dev
Убедитесь, что компилятор GCC успешно установлен, выполнив следующую команду, которая выводит версию GCC:
gcc —version
Репозитории Ubuntu 20.04 предоставляют GCC версии 9.3.0 :
gcc (Ubuntu 9.3.0-10ubuntu2) 9.3.0 Copyright (C) 2019 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Вот и все.
В вашей системе Ubuntu установлены инструменты и библиотеки GCC.
Компиляция примера Hello World
Скомпилировать базовую программу на C или C ++ с помощью GCC довольно просто. Откройте текстовый редактор и создайте следующий файл:
nano hello.c
// hello.c #include int main() printf(«Hello, world!n»); return 0; >
Сохраните файл и скомпилируйте его в исполняемый файл:
gcc hello.c -o hello
Это создает двоичный файл с именем hello в том же каталоге, где вы запускаете команду.
Запустите программу hello с помощью:
./hello
Программа должна напечатать:
Hello World!
Установка нескольких версий GCC
В этом разделе приведены инструкции по установке и использованию нескольких версий GCC в Ubuntu 20.04. Новые версии компилятора GCC включают новые функции и улучшения оптимизации.
На момент написания этой статьи репозитории Ubuntu по умолчанию включают несколько версий GCC, от 7.xx до 10.xx
В следующем примере мы установим последние три версии GCC и G ++.
Установите нужные версии GCC и G ++, набрав:
sudo apt install gcc-8 g++-8 gcc-9 g++-9 gcc-10 g++-10
Приведенные ниже команды настраивают альтернативу для каждой версии и связывают с ней приоритет. Версия по умолчанию — это версия с наивысшим приоритетом, в нашем случае это gcc-10 .
sudo update-alternatives —install /usr/bin/gcc gcc /usr/bin/gcc-10 100 —slave /usr/bin/g++ g++ /usr/bin/g++-10 —slave /usr/bin/gcov gcov /usr/bin/gcov-10sudo update-alternatives —install /usr/bin/gcc gcc /usr/bin/gcc-9 90 —slave /usr/bin/g++ g++ /usr/bin/g++-9 —slave /usr/bin/gcov gcov /usr/bin/gcov-9sudo update-alternatives —install /usr/bin/gcc gcc /usr/bin/gcc-8 80 —slave /usr/bin/g++ g++ /usr/bin/g++-8 —slave /usr/bin/gcov gcov /usr/bin/gcov-8
Позже, если вы захотите изменить версию по умолчанию, используйте команду update-alternatives :
sudo update-alternatives —config gcc
There are 3 choices for the alternative gcc (providing /usr/bin/gcc). Selection Path Priority Status ———————————————————— * 0 /usr/bin/gcc-10 100 auto mode 1 /usr/bin/gcc-10 100 manual mode 2 /usr/bin/gcc-8 80 manual mode 3 /usr/bin/gcc-9 90 manual mode Press to keep the current choice[*], or type selection number:
Вам будет представлен список всех установленных версий GCC в вашей системе Ubuntu. Введите номер версии, которую вы хотите использовать по умолчанию, и нажмите Enter .
Команда создаст символические ссылки на определенные версии GCC и G ++.
Выводы
Как установить и использовать компилятор GCC в системе Linux
При сборке ядра Linux разработчикам пришлось создать бесплатный компилятор с открытым исходным кодом для создания ядра и модулей. Компилятор GCC был создан в рамках проекта GNU. В текущей версии всех дистрибутивов Linux компилятор GCC предустановлен внутри операционной системы. Вы можете использовать компилятор GCC для компиляции C, C++, Ada, Go и некоторых других объектно-ориентированных языков программирования. Вы можете компилировать коды в своей терминальной оболочке с помощью компилятора GCC в системе Linux.
Компилятор GCC в Linux
Слово GCC означает сборник компиляторов GNU. Ядро Linux в основном построено на объектно-ориентированном языке программирования Си. Перед установкой компилятора GCC в вашей системе Linux вам необходимо проверить, установлен ли он уже в вашей системе или нет. gcc –версия
Если вы получаете следующее сообщение в своей оболочке, вам не нужно его устанавливать. Если вы не можете найти GCC на своем компьютере, вам необходимо установить его в своей системе. В этом посте будет показано, как установить и начать работу с коллекцией компиляторов GNU в дистрибутивах Linux.
1. Установите компилятор GCC на Debian/Ubuntu Linux.
В Ubuntu и других дистрибутивах Debian Linux компилятор GCC входит в состав необходимых для сборки пакетов. Весь пакет содержит GNU C, компилятор C++ и еще несколько важных библиотечных функций и инструментов. Вы можете запустить следующую командную строку aptitude, приведенную ниже, чтобы установить коллекцию компиляторов GNU в вашем дистрибутиве Debian Linux. Должен отметить, что для следующей команды потребуются привилегии root. sudo apt install build-essential
2. Установите компилятор GCC в Arch Linux.
Установка компилятора GCC в системе Linux на базе Arch — простой процесс. Вы можете запустить следующую команду Pacman, приведенную ниже, в терминальной оболочке вашей системы Arch Linux, чтобы установить коллекцию компиляторов GNU. Здесь я использую Manjaro KDE Linux для представления семейства Arch, и следующая команда будет работать и в других системах Linux на основе Arch. – –
sudo pacman -S gcc Вы также можете получить компилятор GCC в системе на основе Arch через систему установки и удаления программного обеспечения. Вам просто нужно открыть магазин программного обеспечения и найти компилятор GCC. Как только вы найдете пакет, вы сможете удалить, установить или переустановить его в своей системе всего за несколько кликов.
3. Установите компилятор GCC на Red Hat и Fedora Linux.
Если вы являетесь пользователем Red Hat или Fedora Linux, этот шаг для вас. Вы можете установить компилятор GCC в своей системе, выполнив следующую команду, приведенную ниже. Пользователям Red Hat Linux необходимо запустить команду YUM с правами суперпользователя. sudo yum groupinstall «Инструменты разработки» Пользователям Fedora Linux необходимо выполнить следующую команду DNF в оболочке терминала, чтобы получить коллекцию компиляторов GNU в своей системе.
sudo dnf groupinstall «Инструменты разработки» Если у вас возникли проблемы с установкой инструмента, вы можете запустить следующую команду, чтобы установить коллекцию компиляторов GNU непосредственно в вашей системе на базе Red Hat. sudo yum установить gcc -y
Источник: tehnografi.com