Основная причина создания библиотеки на C состоит в том, чтобы организовать все функции, быть более эффективным программистом и иметь все в одном месте, и в связи с этим возникает вопрос: «Что мне использовать? Динамическая библиотека или статическая библиотека».

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

Как создаются динамические библиотеки.

Чтобы создать динамическую библиотеку, мы воспользуемся командой gcc и -c для создания всех файлов .o из файлов .c. а затем -fPIC, чтобы сделать позицию кода независимой, после этого вы увидите массу файлов .o из всех ваших файлов .c.

gcc -c -fPIC *.c

Теперь мы собираемся собрать все вместе в одной библиотеке, чтобы сделать это как динамическую библиотеку, мы будем использовать флаг -shared. (С помощью -o вы можете указать имя файла .o).

gcc -shared -o libholberton.so *.o

Поздравляю! Вы создали свою библиотеку, чтобы проверить, правильно ли она создана, вы можете использовать эту команду:

nm -D libholberton.so

Как использовать вашу библиотеку

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

export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH

Теперь мы компилируем

gcc -L . main.c -l lib -o a

Это немного другая команда компиляции, мы используем -L, чтобы сообщить программе, где находится библиотека, плюс . что говорит о том, что она находится в текущем каталоге, а -lуказывает программе искать библиотеку.

И это все! Спасибо за чтение!.