Гид по технологиям

Как установить GCC и Clang на Linux

4 min read Linux Обновлено 05 Jan 2026
Установка GCC и Clang на Linux
Установка GCC и Clang на Linux

Программист за столом с ноутбуками и монитором

Компилятор C — базовый инструмент для разработки и сборки программ на C (а также многих других языков через соответствующие фронтенды). На Linux две основные реализации — GCC (долговечный и широко используемый) и Clang (модернный фронтенд для LLVM). Понимание, как их установить и чем они отличаются, поможет собрать проекты из исходников, разработать системный код или настроить CI.

Краткое определение

GCC — GNU Compiler Collection: набор компиляторов для C, C++, Fortran и других языков. Clang — компиляторный фронтенд, использующий инфраструктуру LLVM; совместим с синтаксисом GCC в большинстве случаев.

Установка GCC на популярных дистрибутивах

Debian / Ubuntu (и производные):

sudo apt install build-essential

Пакет build-essential включает gcc, make, libc и другие базовые инструменты сборки.

Fedora и RPM‑based системы:

sudo dnf install gcc

Arch Linux:

sudo pacman -S gcc

Другие дистрибутивы: ищите пакет с именем gcc или описание «GNU Compiler Collection» в менеджере пакетов.

Чтобы проверить установленный GCC и его версию:

gcc --version

Пример компиляции

Скомпилировать простую программу “Hello, World!”:

/* hello.c */
#include 
int main(void) {
    printf("Hello, World!\n");
    return 0;
}

Команда компиляции:

gcc hello.c

Вывод GCC в Linux — компиляция успешна

Если все прошло успешно, в текущем каталоге появится исполняемый файл a.out. Чтобы задать имя выходного файла, используйте опцию -o:

gcc -o hello hello.c
./hello

Установка Clang на Linux

Clang распространяется как пакет clang и доступен в репозиториях большинства дистрибутивов.

Debian / Ubuntu:

sudo apt install clang

Fedora / CentOS:

sudo dnf install clang

Arch Linux:

sudo pacman -S clang

Проверка версии Clang:

clang --version

Компилируется так же, как с GCC:

clang hello.c

Вывод Clang в Linux — компиляция успешна

Сравнение GCC и Clang — по пунктам

КритерийGCCClang/LLVM
ЛицензияGPL (частично)Apache 2.0 (менее рестриктивная)
СовместимостьШироко поддерживается проектами, включая ядро LinuxСильная совместимость с GCC, иногда лучше диагностирует ошибки
Сообщения об ошибкахПриемлемыеЧасто более информативные и понятные
ПроизводительностьОтличная в разных сценарияхХорошая; в ряде случаев сборки быстрее из‑за LLVM

Важно: конкретная производительность и размер бинарника зависят от проекта и флагов компиляции.

Полезные флаги и советы

  • -O0, -O1, -O2, -O3 — уровни оптимизации
  • -g — включить отладочную информацию
  • -Wall — включить большинство предупреждений
  • -Werror — считать предупреждения ошибками
  • -std=c11 или -std=gnu11 — установить стандарт C

Пример: собрать с оптимизацией и предупреждениями:

gcc -std=c11 -O2 -Wall -Werror -o app app.c

Когда выбирать один над другим

  • Если проект требует совместимости с инфраструктурой (ядро, некоторые дистрибутивы), используйте GCC.
  • Если вам важны подробные сообщения об ошибках, анализ кода или вы используете инструменты LLVM, рассмотрите Clang.
  • Для перекрестной компиляции и специфичных платформ изучите целевые бэкенды: и GCC, и LLVM поддерживают разные архитектуры.

Контрольный список перед сборкой проекта из исходников

Для разработчика:

  • Установить gcc и/или clang
  • Установить make/ninja и необходимую библиотеку разработки (dev, -devel)
  • Проверить версии: gcc –version, clang –version
  • Запустить ./configure или cmake с указанием компилятора (CC/ CXX)

Пример указания компилятора для cmake:

CC=clang CXX=clang++ cmake ..

Для системного администратора:

  • Проверить зависимости пакета
  • Тестировать сборку в изолированной среде (контейнер, chroot)
  • Настроить кеш сборки и кэш хедера (ccache) при массовых сборках

Критерии приёмки

  • Команда gcc –version или clang –version возвращает номер версии
  • Простой пример hello.c успешно компилируется и запускается
  • Проект собирается без неожиданных отсутствующих зависимостей

Часто возникающие проблемы и как их решать

  • Ошибка «command not found» — проверьте, установлен ли пакет и доступен ли в PATH.
  • Отсутствуют dev-пакеты (например, libc6-dev) — установите соответствующий пакет разработки.
  • Конфликты версий компилятора — задавайте конкретный компилятор через переменные окружения CC/CXX.

Набор быстрого принятия решения (Mermaid)

graph TD
  A[Нужно компилировать C?] --> B{Требуется совместимость с проектом}
  B -- Да --> C[Использовать GCC]
  B -- Нет --> D{Нужны улучшенные сообщения об ошибках или анализ}
  D -- Да --> E[Использовать Clang]
  D -- Нет --> F[Выбор по привычке/политике]
  F --> C
  F --> E

Рекомендации по безопасности и приватности

  • Компилируйте с опцией -fstack-protector и другими безопасными флагами для критичных приложений.
  • Проверяйте и обновляйте компиляторы через системный менеджер пакетов, чтобы получать патчи безопасности.

Заключение

Установить оба компилятора легко: используйте пакеты вашей системы и проверяйте версии. Для большинства задач GCC остаётся стандартом де‑факто, но Clang — отличная альтернатива с удобными сообщениями об ошибках и сильным экосистемным набором. Выберите тот, который лучше подходит под требования проекта, и настройте флаги компиляции.

Краткое резюме:

  • Установите build-essential на Debian/Ubuntu, gcc на Fedora, clang в тех же репозиториях для Clang.
  • Проверяйте версии и используйте -o для задания имени выходного файла.
  • Выбирайте компилятор по совместимости, удобству диагностики и политике лицензирования.

Важно: при сборке больших проектов всегда создавайте тестовую среду и документируйте используемые версии компиляторов.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Удаление рекламы в WordPress одной SQL‑командой
WordPress

Удаление рекламы в WordPress одной SQL‑командой

Контакты не отображаются на iPhone — что делать
iPhone

Контакты не отображаются на iPhone — что делать

Как включить Downloads For You в Netflix
Руководство

Как включить Downloads For You в Netflix

Как создать скринкаст: веб‑инструменты и советы
How-to

Как создать скринкаст: веб‑инструменты и советы

Куда пожаловаться на начальника: сайты и безопасная стратегия
Карьера

Куда пожаловаться на начальника: сайты и безопасная стратегия

Как создать QR‑код на Fast QR Code
Гайды

Как создать QR‑код на Fast QR Code