Основная причина создания библиотеки на 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указывает программе искать библиотеку.
И это все! Спасибо за чтение!.