Компиляция приложений на Си и C++

Компиляция приложений на Си и C++ #

В рамках занятия рассматривается вопрос по компиляции приложений, разработанных другими разработчиками для ОС GNU/Linux.

Принципиальный подход по компиляции приложения #

  1. Получить исходные коды от разработчика.
  2. Найти официальное руководство по установке (обычно является частью исходных кодов).
  3. Следовать инструкции.

Если вы не смогли найти официальное руководство, то придётся исследовать исходный код и разбираться в деталях работы систем сборки.

Нахождение библиотек-зависимостей #

Для компиляции приложения необходимо поставить пакеты, включающие заголовочные файлы библиотек. В Debian такие пакеты обычно начинаются с префикса lib, обозначающего библиотеку, и заканчивающиеся суффиксом -dev, обозначающим, что он содержит заголовочный файл. В Alt Linux пакеты с библиотеками тоже обычно начинаются с префикса lib, а суффикс используется -devel.

Если во время сборки система сообщает об отсутствии заголовочного файла, файла с расширением .h, тогда следует найти соответсттвующий пакет:

  • С помощью apf.
  • С помощью приложения epm, флаг -sf.

Если во время сборки система сообщает об отсутствии необходимой библиотеки, то её следует искать по имени пакета:

  • С помощью apt-cache.
  • С помощью epm, команда search.
  • С помощью поиска по имени пакетов на packages.altlinux.org.

Использование GNU Autotools #

Краткая справка по использованию Autotools #

В самом кратком случае для сборки приложения с помощью Autotools необходимо выполнить следующие действия:

  1. Создать сборочный файл системы make с помощью скрипта ./configure.
  2. Выполнить сборку приложения, выполнив сборку в параллель, make -j.
  3. Установить приложение. Для этого надо поднять права до уровня суперпользователя, затем выполнить команду по установке файлов make install.

Документация #

Задачи на сборку приложения #

Соберите следующие приложения. При сборке приложения составьте список пакетов, который необходимо установить для выполнения сборки.

  • GNU Parallel — приложение для выполнения действий параллельно.
  • Silver Searcher Ag — приложение для быстрого поиска информации в исходных кодах проекта.
  • Calcurse — приложение для управления собственным временем в формате календаря.

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

Краткая справка по использованию CMake #

Для сборки приложения с использованием CMake:

  1. Создать каталог для сборки приложения, например build:
mkdir build
cd build
  1. Сгенерировать конфигурацию сборочного инструмента на основании конфигурации CMakeLists.txt:
cmake ../
  1. Запустить сборку с помощью созданного инструмента:
make -j

Или с помощью вызова команды cmake:

cmake --build -j .
  1. Установить приложение. Для этого необходимо поднять привилегии до уровня суперпользователя, а затем выполнить установку:
make install

Или с помощью вызова соответствующей команды cmake:

cmake --install .

Документация #

Задача #

Соберите и установите следующие приложения с использованием системы сборки CMake. Сформируйте список пакетов, который необходим для компиляции каждого из этих приложений.

  • cppcheck — приложение для анализа качества исходного кода на языках Си и C++.
  • manticoresearch — база данных для полнотекстового поиска.
  • Drawpile — приложение для совместного рисования.

© A. M. Васильев, 2024, CC BY-SA 4.0, andrey@crafted.su