Linux

Сборка C-программ на Linux: пошаговое руководство за 5 минут

В этом руководстве вы научитесь устанавливать компилятор GCC, писать простую C-программу, компилировать её с помощью gcc и выполнять. Рассказывается об использовании make и устранении типичных ошибок.

Обновлено 2 июля 2026 г.
5-10 мин
Низкая
FixPedia Team
Применимо к:Ubuntu 22.04 LTSDebian 12 (bookworm)Fedora 38Arch Linux

Введение

Сборка C-программ на Linux — это базовый навык для каждого разработчика. Даже если вы никогда раньше не компилировали код, с помощью этой инструкции вы сможете написать простую программу, скомпилировать её с помощью gcc и выполнить. Гайд охватывает установку компилятора, ручную компиляцию и автоматизацию с помощью make, а также решение типичных ошибок.

Требования

  • Любая современная дистрибутива Linux (Ubuntu, Debian, Fedora, Arch и др.).
  • Права суперпользователя (sudo) для установки пакетов.
  • Текстовый редактор (например, nano, vim).
  • Базовые знания работы в терминале.

Пошаговая инструкция

Шаг 1: Установка компилятора GCC

Выполните команду установки, соответствующую вашей системе:

# Debian/Ubuntu
sudo apt update && sudo apt install build-essential

# Fedora
sudo dnf install gcc

# Arch Linux
sudo pacman -S base-devel

После завершения установки проверьте версию компилятора:

gcc --version

Шаг 2: Написание простой C-программы

Создайте файл main.c с помощью текстового редакатора:

nano main.c

Добавьте минимальный код, например, программу, выводящую «Hello, World!»:

#include <stdio.h>

int main() {
    printf("Hello, World!n");
    return 0;
}

Сохраните файл (Ctrl+O, Enter) и выйдите (Ctrl+X).

Шаг 3: Компиляция программы с помощью gcc

В той же директории выполните команду:

gcc -Wall -Wextra -O2 -o hello main.c
  • -Wall -Wextra — включают все предупреждения;
  • -O2 — уровень оптимизации;
  • -o hello — задает имя исполняемого файла.

Если ошибок нет, появится файл hello.

Шаг 4: Запуск программы

Выполните программу:

./hello

Вы должны увидеть:

Hello, World!

Шаг 5: Использование Makefile для автоматизации сборки

Makefile позволяет автоматизировать сборку, особенно для проектов с несколькими исходными файлами. Создайте файл Makefile:

all: hello

hello: main.c
    gcc -Wall -Wextra -O2 -o hello main.c

clean:
    rm -f hello

Выполните команду:

make

Чтобы удалить скомпилированный файл, выполните:

make clean

Шаг 6: Устранение распространённых ошибок

СимптомВероятная причинаРешение
gcc: command not foundКомпилятор не установленУстановите build-essential (Debian/Ubuntu) или gcc (Fedora)
undefined reference to 'printf'Не подключена стандартная библиотека или пропущен файл с кодомУбедитесь, что main.c подключен к Makefile и что файл существует
error: ‘FILE’ was not declaredНе подключен заголовочный файлДобавьте #include <stdio.h> или нужный заголовок
segmentation faultОшибка доступа к памятиПроверьте указатели, убедитесь, что массивы не выходят за границы, используйте -fsanitize=address для отладки

Проверка результата

Программа должна компилироваться без ошибок и успешно выполняться. Если вы использовали make, проверьте, что команда make пересобирает программу при изменении исходного кода. Удалите скомпилированный файл с помощью make clean, чтобы убедиться, что правило работает.

Возможные проблемы

  1. Отсутствие make Установите make через тот же менеджер пакетов, который использовался для установки GCC.
  2. Конфликт версий GCC Некоторые дистрибутивы поставляются с несколькими версиями. Используйте gcc-11 или g++ явно, если нужна конкретная версия.
  3. Отсутствие прав на запись Если вы компилируете в домашней директории без прав на запись, выберите другую директорию (/tmp) или используйте sudo с осторожностью.

Эти советы помогут избежать типичных ошибок и обеспечат плавный процесс сборки. Удачной разработки!

Часто задаваемые вопросы

Что делать, если команда gcc не найдена?
Как написать и скомпилировать простую C-программу?
Почему сборка через make может не работать?
Как устранить ошибки компиляции, такие как 'undefined reference'?

Полезное

Установка компилятора GCC
Написание простой C-программы
Компиляция программы с помощью gcc
Запуск программы
Использование Makefile для автоматизации сборки
Устранение распространённых ошибок

Эта статья помогла вам решить проблему?