Astra linux gcc install

Linux где находится gcc

Средствами, традиционно используемыми для создания программ для открытых операционных систем, являются инструменты разработчика GNU. Сделаем маленькую историческую справку. Проект GNU был основан в 1984 году Ричардом Столлманом. Его необходимость была вызвана тем, что в то время сотрудничество между программистами было затруднено, так как владельцы коммерческого программного обеспечения чинили многочисленные препятствия такому сотрудничеству. Целью проекта GNU было создание комплекта программного обеспечения под единой лицензией, которая не допускала бы возможности присваивания кем-то эксклюзивных прав на это ПО. Частью этого комплекта и является набор инструментов для разработчика, которым мы будем пользоваться, и который должен входить во все дистрибутивы Linux.

Одним из этих инструментов является компилятор GCC. Первоначально эта аббревиатура расшифровывалась, как GNU C Compiler. Сейчас она означает – GNU Compiler Collection. Создадим первую программу с помощью GCC. По сложившейся традиции первая программа будет просто выводить в консоли приветствие «Hello world!» – «Здравствуй Мир!». Файлы с исходными кодами программ, которые мы будем создавать, это обычные текстовые файлы, и создавать их можно с помощью любого текстового редактора (например 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. Наберите в командной строке: Перед вами предстанет справочная система по этой программе. Просмотрите, что означает каждый флаг. С некоторыми из них мы скоро встретимся. Выход из справочной системы осуществляется с помощью клавиши 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. Но давайте пока не будем отвлекаться от главной темы. Переменные окружения – это отдельный разговор.

Читайте также:  Mysql python connector linux

Теперь рассмотрим, что же делает программа gcc. Её работа включает три этапа: обработка препроцессором, компиляция и компоновка (или линковка). Препроцессор включает в основной файл содержимое всех заголовочных файлов, указанных в директивах #include. В заголовочных файлах обычно находятся объявления функций, используемых в программе, но не определённых в тексте программы. Их определения находятся где-то в другом месте: или в других файлах с исходным кодом или в бинарных библиотеках. Вторая стадия – компиляция. Она заключается в превращении текста программы на языке C/C++ в набор машинных команд. Результат сохраняется в объектном файле. Разумеется, на машинах с разной архитектурой процессора двоичные файлы получаются в разных форматах, и на одной машине невозможно запустить бинарник, собранный на другой машине (разве только, если у них одинаковая архитектура процессора и одинаковые операционные системы). Вот почему программы для UNIX-подобных систем распространяются в виде исходных кодов: они должны быть доступны всем пользователям, независимо от того, у кого какой процессор и какая операционная система. Последняя стадия – компоновка. Она заключается в связывании всех объектных файлов проекта в один, связывании вызовов функций с их определениями, и присоединением библиотечных файлов, содержащих функции, которые вызываются, но не определены в проекте. В результате формируется запускаемый файл – наша конечная цель. Если какая-то функция в программе используется, но компоновщик не найдёт место, где эта функция определена, он выдаст сообщение об ошибке, и откажется создавать исполняемый файл. Теперь посмотрим на практике, как всё это выглядит. Напишем другую программу. Это будет примитивнейший калькулятор, способный складывать, вычитать, умножать и делить. При запуске он будет запрашивать по очереди два числа, над которыми следует произвести действие, а затем потребует ввести знак арифметического действия. Это могут быть четыре знака: «+», «–», «*», «/». После этого программа выводит результат и останавливается (возвращает нас в операционную систему, а точнее – в командный интерпретатор, из которого мы программу и вызывали). Источник

Читайте также:  Графический интерфейс openvpn linux

Установка 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:

Читайте также:  Linux размер swap раздела

Теперь запустим сборку программы:

Когда сборка программы будет завершена, вы можете ее запустить:

Готово, компилятор прекрасно работает в системе, и теперь вы можете писать свои программы или собирать чужие.

Выводы

В этой статье мы рассмотрели как установить gcc в Ubuntu, это один из самых популярных компиляторов для этой операционной системы. И устанавливается он очень просто, если у вас остались вопросы, спрашивайте в комментариях!

На завершение видео с демонстрацией самого процесса:

Источник

Не устанавливается g++

Чтение списков пакетов…
Построение дерева зависимостей…
Чтение информации о состоянии…
Некоторые пакеты невозможно установить. Возможно, вы просите невозможного,
или же используете нестабильную версию дистрибутива, где запрошенные вами
пакеты ещё не созданы или были удалены из Incoming.
Следующая информация, возможно, поможет вам:

Пакеты, имеющие неудовлетворённые зависимости:
g++ : Зависит: g++-6 (>= 6.3.0-9~) но он не будет установлен
E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты.

В чем может быть проблема?

DEVOPS

New member

Пытаюсь установить g++:
sudo apt install g++

Чтение списков пакетов…
Построение дерева зависимостей…
Чтение информации о состоянии…
Некоторые пакеты невозможно установить. Возможно, вы просите невозможного,
или же используете нестабильную версию дистрибутива, где запрошенные вами
пакеты ещё не созданы или были удалены из Incoming.
Следующая информация, возможно, поможет вам:

Пакеты, имеющие неудовлетворённые зависимости:
g++ : Зависит: g++-6 (>= 6.3.0-9~) но он не будет установлен
E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты.

В чем может быть проблема?

oko

New member

to sergunok
Когда-то давно ставил С/С++ на Орла из родного репозитория. Так что если ничего не поменяли, то sudo apt install gcc g++ make решит проблему.
Это при условии, что репы сконфигурированы корректно и в системе не проводилось лишних манипуляций по обновлению сразу из репы астры и сразу нескольких версий дебиан (как тут часто любят, ага).

countmein

New member

sergunok

New member

to sergunok
Когда-то давно ставил С/С++ на Орла из родного репозитория. Так что если ничего не поменяли, то sudo apt install gcc g++ make решит проблему.
Это при условии, что репы сконфигурированы корректно и в системе не проводилось лишних манипуляций по обновлению сразу из репы астры и сразу нескольких версий дебиан (как тут часто любят, ага).

В том-то и дело, что я не трогал настройки репозиториев.
Сделал sudo apt update

И вот такая-вот ошибка:
Чтение списков пакетов…
Построение дерева зависимостей…
Чтение информации о состоянии…
Некоторые пакеты невозможно установить. Возможно, вы просите невозможного,
или же используете нестабильную версию дистрибутива, где запрошенные вами
пакеты ещё не созданы или были удалены из Incoming.
Следующая информация, возможно, поможет вам:

Пакеты, имеющие неудовлетворённые зависимости:
g++ : Зависит: g++-6 (>= 6.3.0-9~) но он не будет установлен
E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты.

Может быть дело в CE? Нужен SE?

Источник

Оцените статью
Adblock
detector