Библиотеки — это группа файлов с предварительно созданными функциями, которые могут использоваться любым исполняемым файлом. Библиотеки содержат внутри переменные и функции, а также определенные типы файлов, которые мы можем импортировать или включать в нашу программу. Эти файлы могут содержать спецификации различных функций, уже встроенных и готовых к использованию, и эта функция облегчает жизнь программистам, поверьте мне.

Зачем использовать библиотеки

Библиотека C — это группа объектных файлов, упакованных в один единственный файл, используемый, опять же, как отдельный элемент на этапе компоновки программы. Помните, что в процессе компиляции gcc для исходной программы C фаза компоновки является последним шагом, выполняемым компоновщиком, принимающим входные объектные файлы и библиотеки для создания окончательной исполняемой программы.

Библиотеки имеют два преимущества по сравнению с файловыми разделами на диске: меньше файлов и индексация для них, что позволяет значительно ускорить процесс компоновки, что важно учитывать.

Как работают библиотеки

В C есть два типа библиотек: статические и динамические библиотеки, и на этот раз мы сосредоточимся на статических библиотеках.

Статические библиотеки

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

Как создавать статические библиотеки

Мы собираемся выполнить шаги, необходимые для создания и изменения статической библиотеки.

  1. Создайте несколько программ функций C

Создайте несколько программ .c, скажем, add.c и mul.c.

2. Скомпилируйте программы и получите объектные файлы

Использование gcc с опцией -c создаст соответствующие файлы .o

Теперь у нас есть файлы .c и .o.

3. Создайте статическую библиотеку программы C с помощью программы ar

Сделаем перерыв и подумаем. Статические библиотеки создаются программой под названием «ar» (аббревиатура от «архиватора»), которая может манипулировать ими несколькими способами: создавать, редактировать, изменять…

Следующее, что нужно сделать, это создать статическую библиотеку с помощью команды ar, мы назовем ее «libarith.a» с файлами объектов add и mul.

В последней команде флаг «c» указывает ar создать библиотеку, если она еще не существует. Флаг «r» указывает ему заменить старые объектные файлы в библиотеке новым объектным файлом.

4. Используйте команду ranlib для индексации статических библиотек

Некоторые системы не используют «ar» в качестве архиватора, и программы, создающие библиотеки, также заботятся об индексировании. Программа «ar» и «ranlib» работают вместе, и мы будем продолжать в том же духе.

Как использовать библиотеку C в программе

Мы только что создали нашу библиотеку libarith.a, теперь мы будем ее использовать. На данный момент осталось только две вещи: заголовочный файл и основная программа.

Скомпилируйте нашу основную программу для генерации и объекта:

Параметр -L указывает компилятору искать файлы библиотек в текущем каталоге.

И, наконец, протестируйте основной исполняемый файл

Библиография

· Набор инструментов Linux-программиста, Джон Фуско.

· https://www.sitesbay.com/cprogramming/c-compile-link-program

· https://www.thegeekstuff.com/2010/08/ar-command-examples/