Изобретать колесо заново? Нет-нет-нет…
Это пустая трата времени и энергии, то же самое происходит и с компьютерным кодом.
Что такое библиотеки кода?
В информатике библиотека представляет собой набор ресурсов, используемых компьютерными программами, часто для разработки программного обеспечения. Они могут включать данные конфигурации, документацию, справочные данные, шаблоны сообщений, предварительно написанный код и подпрограммы, классы, значения или спецификации типов.
Для чего они полезны?
Как было сказано ранее, они используются для повторного использования уже написанного кода, написанного кем-то другим (обычно программистами языка программирования, на котором вы работаете), вами и т. д. Поэтому, если у вас очень большой проект, помните, что кто-то еще вероятно, уже написал часть кода, который вам нужен, и вы можете без проблем использовать его повторно, для этого и существуют библиотеки!.
Различные типы библиотек кода.
Существует два типа библиотек, статические и динамические (разделяемые библиотеки). Статические библиотеки подключаются к программе на этапе связывания компиляции (посетите: Процесс компиляции), это означает, что они смешивается с процессом компиляции только один раз. Общая библиотека — это файл, предназначенный для совместного использования исполняемыми файлами и дополнительными общими объектными файлами. Модули, используемые программой, загружаются из отдельных общих объектов в память во время загрузки или во время выполнения, а не копируются компоновщиком, когда он создает единый монолитный исполняемый файл для программы.
Как создать код для статических библиотек.
Прежде всего, вам нужно определить, какие программы вы собираетесь использовать в будущем, или, может быть, в вашей команде есть пара программ, которые вы собираетесь использовать для запуска нового проекта.
1 . Файлы и программы. Важно собрать все функции файла C, которые мы собираемся сохранить в нашей библиотеке. Эти файлы C уже содержат нашу программу для выполнения определенного действия, в этом случае мы собираемся сохранить программу, которая печатает алфавит в нижнем регистре (a, z), и другую, которая печатает цифры de. (0, 9).
example > ls -1 print_alphabet.c print_digits.c header.h example > cat header.h #ifndef HEADER_FILE #define header.h void _print_alphabet(void); void _print_digits(void); #endif
Ранее мы также создали файл header.h, в котором будут собраны все прототипы функций.
2 . Создайте объектные файлы. Теперь нам нужно, чтобы все наши функции были написаны в объектном коде (также называемом машинным языком). поэтому для этого шага мы компилируем все наши программы на C до стадии ассемблера в процессе компиляции.
example > #gcc comand to compile our .c files and create the object files example > gcc -c *.c example > #ls command to show the .o files created example > ls *.o print_alphabet.o print_digits.o
3 . Создайте библиотеку. ar — это команда, которая позволяет нам создать библиотеку. в этом примере мы создадим библиотеку с именем libstatic.a и включим все объектные файлы в наш рабочий каталог. *.о
4 . Подтвердить. Мы можем проверить, включены ли наши объектные файлы в нашу библиотеку, следующим образом:
example > nm libstatic.a print_alphabet.o: 0000000000000000 T _print_alphabet print_digits.o: 0000000000000000 T _print_digits
5 . Тестирование. Чтобы не создавать новый файл main.c, который будет точкой входа в нашу новую программу, задачу или проект. Основная функция будет скомпилирована со всем объектным кодом, включенным в нашу библиотеку (libstatic.a). На этом шаге не учитывается ни префикс lib, ни расширение .a. (lstatic). затем мы можем выполнить нашу основную программу с помощью ./ .
example > cat main.c #include "header.h" int main(void) { _print_alphabet() return (0); } example > gcc main.c -L -lstatic -o main example > ./main abcdefghijklmnopqrstuvwxyz
таким образом мы завершаем создание статической библиотеки.
источник: https://docencia.ac.upc.edu/FIB/USO/Bibliografia/unix-c-libraries.html#what_is_a_library