Как установить компиляторы C (GCC и Clang) в Linux
Кратко

Если вы пишете на C или собираете программы из исходников в Linux, нужен компилятор C. Наиболее распространённые варианты — проверенный временем GCC и более новый Clang. Оба доступны через стандартные репозитории большинства дистрибутивов.
В этой статье вы найдёте команды установки для популярных дистрибутивов, примеры компиляции, краткое сравнение, памятку с командами, небольшое руководство по устранению ошибок и глоссарий терминов.
Что такое GCC и Clang
- GCC — GNU Compiler Collection: набор компиляторов для C, C++, Fortran, Ada и других языков. Часто используется для сборки ядра Linux и многих проектов с открытым исходным кодом.
- Clang — фронтенд для LLVM, созданный для совместимости с GCC, при этом стремится к более быстрой работе, лучшим диагностическим сообщениям и гибкой лицензии (Apache 2.0).
Установка GCC в Linux
GCC (и необходимые библиотеки для компиляции) обычно устанавливают пакетами, удобными для разработки.
На Debian и Ubuntu установите пакет build-essential — он включает gcc, make и основные заголовки libc:
sudo apt update
sudo apt install build-essentialНа Fedora и других RPM-based дистрибутивах достаточно установить gcc:
sudo dnf install gccНа Arch Linux:
sudo pacman -S gccВ других дистрибутивах найдите пакеты по имени «GCC» или «gcc» в менеджере пакетов вашей системы.
Пример: компиляция программы
Содержимое файла hello.c:
#include
int main(void) {
printf("Hello, World!\n");
return 0;
} Компиляция с помощью GCC:
gcc hello.cЕсли всё прошло успешно, в текущем каталоге появится исполняемый файл a.out. Запустите его так:
./a.outУстановка Clang в Linux
Clang доступен в репозиториях большинства дистрибутивов. Он совместим с синтаксисом команд GCC в большинстве случаев, поэтому переход обычно прост.
На Debian и Ubuntu установите пакет clang:
sudo apt update
sudo apt install clangНа Fedora/CentOS:
sudo dnf install clangНа Arch Linux / Manjaro:
sudo pacman -S clangКомпиляция той же программы с помощью Clang:
clang hello.cСравнение GCC и Clang — когда что выбирать
Коротко:
- Совместимость: GCC historically has wider target support; Clang быстро догоняет.
- Диагностика: Clang даёт более читаемые и подробные сообщения об ошибках.
- Производительность компиляции: зависит от версии и целей; в реальности различия невелики для большинства проектов.
- Лицензия: GCC — GPL, Clang — Apache 2.0.
Когда выбрать GCC:
- Если проект явно требует GCC (или патчируется под GCC).
- При сборке ядра Linux (официально долгое время рекомендован GCC, хотя поддержка Clang растёт).
Когда выбрать Clang:
- Нужны более понятные сообщения об ошибках и быстрый цикл разработки.
- Требуется гибкая лицензия для коммерческих модификаций.
Полезная памятка: команды и опции
- Компиляция в исполняемый файл (по умолчанию a.out):
gcc hello.c
clang hello.c- Указать имя выходного файла:
gcc -o hello hello.c
clang -o hello hello.c- Включить отладочную информацию:
gcc -g -O0 -o hello hello.c- Включить предупреждения и строгую проверку:
gcc -Wall -Wextra -Werror -o hello hello.c- Компиляция C++:
g++ main.cpp
clang++ main.cppОтладка ошибок установки и типичные проблемы
Пакет не найден в репозитории
- Проверьте
sudo apt updateили эквивалент для вашей системы. - Убедитесь, что у вас включены стандартные репозитории (main, universe для Ubuntu).
- Проверьте
Отсутствуют заголовки libc (ошибки вроде stdio.h: No such file)
- На Debian/Ubuntu установите build-essential, который включает libc-dev.
Несовместимость кода при переключении между компиляторами
- Проверьте используемые расширения языка; добавьте соответствующие флаги стандарта, например
-std=c11.
- Проверьте используемые расширения языка; добавьте соответствующие флаги стандарта, например
Старые версии компилятора
- Используйте пакеты backports или репозитории поставщиков, если нужен более свежий GCC/Clang.
Простое дерево решений для выбора (Mermaid)
flowchart TD
A[Нужно скомпилировать C] --> B{Проект требует конкретный компилятор?}
B -->|Да: GCC| C[Установить GCC]
B -->|Да: Clang| D[Установить Clang]
B -->|Нет| E{Нужна лучшая диагностика?}
E -->|Да| D
E -->|Нет| C
C --> F[Скомпилировать и тестировать]
D --> FКритерии приёмки
- Компилятор установлен и доступен в PATH (проверка:
gcc --versionилиclang --version). - Простая программа (hello.c) компилируется и запускается без ошибок.
- Для сборки проекта доступны все необходимые заголовки и библиотеки.
Ролевые чек-листы (быстрые шаги)
Для новичка:
- Обновить списки пакетов.
- Установить build-essential (Debian/Ubuntu) или gcc (другие).
- Скомпилировать hello.c.
Для разработчика проекта:
- Установить версию компилятора, совместимую с CI.
- Добавить в README команды компиляции и минимальные флаги.
Для системного администратора:
- Автоматизировать установку через конфигурационные менеджеры (Ansible, Puppet).
- Обеспечить репозитории актуальными версиями.
Глоссарий
- GCC — набор компиляторов GNU для разных языков.
- Clang — фронтенд компилятора в экосистеме LLVM.
- LLVM — инфраструктура компиляторов и набор библиотек для оптимизаций.
- build-essential — метапакет Debian/Ubuntu, содержащий инструменты для сборки C/C++ программ.
Дополнительные советы и альтернативы
- Если вы собираете большие проекты, рассмотрите использование ccache для ускорения повторных сборок.
- Для кросс-компиляции используйте таргетные пакеты (например, gcc-arm-none-eabi для ARM).
- В средах сборки (CI) фиксируйте версии компилятора, чтобы избежать неожиданных различий.
Краткое резюме
Вы можете быстро установить GCC или Clang через стандартный менеджер пакетов. GCC остаётся стандартом де-факто для многих проектов, а Clang предлагает удобные диагностические сообщения и либеральную лицензию. Начните с установки и компиляции простого примера, затем настройте флаги компиляции и окружение по мере роста проекта.
Важно
Проверяйте версии компиляторов и системные заголовки при переносе проекта между машинами — это самая частая причина непредвиденных ошибок сборки.
Похожие материалы
Настроить воспроизведение видео в Google Slides
Как пожаловаться на публикацию в Facebook
Исправить высокую загрузку wmpnetwk.exe
Отмена и повтор действий в Word
Убрать стрелки на ярлыках в Windows 7, 8, 10