Добавить в корзинуПозвонить
Найти в Дзене
SunN1nja

Разработка и сборка программ на Ubuntu (компиляторы, пакеты разработчика, отладка)

Ubuntu — одна из самых популярных дистрибутивов Linux, широко используемая как для серверов, так и для рабочих станций. Одно из главных её преимуществ — развитая экосистема для разработки программного обеспечения. В этой статье подробно рассмотрим основные аспекты разработки и сборки программ на Ubuntu: установка и использование компиляторов, наборы пакетов разработчика, а также инструменты для отладки. Для написания и сборки программ в Ubuntu обычно используются: GNU Compiler Collection (GCC) — основной компилятор для языков C и C++. Пакет build-essential включает: Вы можете проверить установку командой: Чтобы компилировать программное обеспечение, используют не только компиляторы, но и заголовочные файлы библиотек. В Ubuntu заголовки и файлы для разработки обычно идут в пакетах с суффиксом -dev. Для программирования с использованием библиотеки SDL необходим пакет: Для OpenSSL: Если вы хотите собрать программу, использующую библиотеку, без -dev пакета сборка обычно не пройдет. Создади
Оглавление
Разработка и сборка программ на Ubuntu (компиляторы, пакеты разработчика, отладка)
Разработка и сборка программ на Ubuntu (компиляторы, пакеты разработчика, отладка)

Ubuntu — одна из самых популярных дистрибутивов Linux, широко используемая как для серверов, так и для рабочих станций. Одно из главных её преимуществ — развитая экосистема для разработки программного обеспечения. В этой статье подробно рассмотрим основные аспекты разработки и сборки программ на Ubuntu: установка и использование компиляторов, наборы пакетов разработчика, а также инструменты для отладки.

Подписывайтесь на мой канал!

1. Средства разработки в Ubuntu

Для написания и сборки программ в Ubuntu обычно используются:

  • Компиляторы — инструменты, преобразующие исходный код в исполняемый файл.
  • Пакеты разработчика (dev packages) — библиотеки и заголовочные файлы для сборки программ.
  • Системы сборки — утилиты, управляющие процессом компиляции (make, cmake, meson).
  • Отладчики — программы для диагностики и поиска ошибок (gdb).

2. Установка компиляторов

2.1 GCC/G++ — компилятор C/C++

GNU Compiler Collection (GCC) — основной компилятор для языков C и C++.

-2

Пакет build-essential включает:

  • gcc — компилятор C
  • g++ — компилятор C++
  • make — утилита сборки
  • необходимые библиотеки и заголовочные файлы

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

-3

2.2 Другие популярные компиляторы

  • Clang — альтернатива GCC с поддержкой современных стандартов:
-4
  • OpenJDK — для Java:
-5
  • Python — для скриптов:
-6

3. Пакеты разработчика (development packages)

Чтобы компилировать программное обеспечение, используют не только компиляторы, но и заголовочные файлы библиотек. В Ubuntu заголовки и файлы для разработки обычно идут в пакетах с суффиксом -dev.

Пример

Для программирования с использованием библиотеки SDL необходим пакет:

-7

Для OpenSSL:

-8

Если вы хотите собрать программу, использующую библиотеку, без -dev пакета сборка обычно не пройдет.

4. Написание и компиляция простых программ

4.1 Пример программы на C

Создадим файл hello.c:

-9

Компиляция:

-10

Вывод:

Hello, Ubuntu!

4.2 Пример программы на C++ с использованием SDL2

-11

Компиляция:

-12

5. Системы сборки

5.1 Make

Make — стандартный инструмент автоматизации сборки.

Создадим файл Makefile для проекта с hello.c:

-13

Использование:

-14

5.2 CMake

Современный инструмент, особенно популярен при кросс-платформенной разработке.

Пример CMakeLists.txt для hello.c:

-15

Команды для сборки:

-16

6. Отладка программ

6.1 Компиляция с поддержкой отладки

Для отладки программу нужно компилировать с флагом -g:

-17

6.2 GDB — GNU Debugger

Инструмент для построчного анализа программы.

Запуск:

gdb ./hello

Основные команды gdb:

  • run — запустить программу
  • break main — установить точку останова в функции main
  • next — выполнить следующую строку
  • print var — вывести значение переменной
  • continue — продолжить выполнение до следующей точки останова
  • quit — выйти

Пример дебага

-18

6.3 Инструменты визуальной отладки

  • DDD — графический интерфейс для gdb
  • Valgrind — анализ утечек памяти

Установка:

-19

Пример использования Valgrind:

-20

7. Использование пакетов для разработки (пример libc6-dev)

Для разработки практически всегда требуется базовый пакет libc6-dev:

-21

Он содержит заголовки C стандартной библиотеки и необходимые для компилятора файлы.

Итоги и рекомендации

  • Для разработки C/C++ начальным и рекомендуемым пакетом является build-essential.
  • Для установки нужных библиотек используйте соответствующие -dev пакеты.
  • Автоматизацию сборки можно осуществлять с помощью make или cmake.
  • Не забывайте компилировать с флагом -g для отладки.
  • Для отладки используйте gdb и анализируйте память с помощью valgrind.

Ubuntu предоставляет широкий спектр инструментов разработки из коробки и через пакетные менеджеры, что делает её отличной платформой для программирования.

Следующая статья - Настройка и использование командной строки: основные команды, shell-среды, алиасы

Предидущая статья - Оптимизация производительности Ubuntu (настройки ядра, кэширование, очистка системы)

Цикл статей про Ubuntu