
Статические библиотеки – это наборы объектных файлов, которые связываются при компиляции файла в исполняемый файл.
Зачем использовать библиотеки?
В статической библиотеке компоновщик включает объектный код функций библиотеки, использующей ее исходный код. Если вы создадите статическую библиотеку с именем lib.a в исходном коде, а затем вызовете функции, определенные в lib.a, реализация этих функций будет передана в объектный код. а затем включается в окончательный исполняемый файл программой запуска.
Как они работают?

Как их создать?
- Список файлов с соответствующими функциями .c

2. компилирует файлы, в которых создаются .o
gcc -Wall -pedantic -Werror -Wextra -c *.c

- gcc =интегрированный компилятор, способный получать исходную программу и генерировать двоичную исполняемую программу.
- Wall -Wextra -pendantic = флаги — это все флаги предупреждений и ошибок, которые следует включать при компиляции кода.
- -c = связать создаваемые файлы как объекты
3. Создание книжного магазина с ar
ar -rc libholberton.a *.o

- ar = Эту программу можно использовать для создания статических библиотек (фактически являющихся архивными файлами).
- -r = заменяет старые файлы
- -c =создать библиотеку, если она не существует
Как их использовать?
Мы можем визуализировать это с помощью nm
nm libholberton.a

- -nm = перечисляет значение каждого символа, тип символа и имя символа объектных файлов.
Нам нужно проиндексировать наш созданный файл, это поможет компилятору при поиске внутри библиотеки эта команда ranlib
ranlib libholberton.a

- -t = служит для просмотра содержимого нашей созданной библиотеки
ar -t libholberton.a

Использование библиотеки "C" в программе
использование флага '-L' — этот флаг сообщает компоновщику, что библиотеки можно найти в заданном каталоге ('.', ссылаясь на текущий каталог), в дополнение к стандартным расположениям, в которых компилятор ищет системные библиотеки.
gcc 0-isupper.c -L. -lholberton -o isupper

./isupper
