Для простоты библиотеки понимаются как набор функций, доступных пользователям языков программирования. Все языки программирования имеют библиотеки общих полезных функций, к которым можно получить доступ, включив их в программный файл. В языке программирования C добавьте #include ‹lib.h› (lib.h, являющийся вымышленной библиотекой), где, как в Python, добавьте -import library или -from функцию импорта библиотеки.

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

Создание исполняемого файла большего размера — это лишь один из недостатков статических библиотек. Другим недостатком является то, что если необходимо внести изменения в библиотеку, эти изменения не будут доступны пользователям исполняемого файла, зависящего от статической библиотеки. Единственным реальным преимуществом использования статических библиотек является гарантированная работа приложения, поскольку функции и библиотека сохраняются в исполняемом файле. Давние пользователи ОС Windows должны помнить, когда их система получала обновления, обновляя библиотеки, и вдруг программы, которые безупречно работали до обновления, оказывались бесполезными до тех пор, пока в программу не были внесены изменения, чтобы учесть изменения, внесенные системным обновлением в динамические библиотеки. . В большом исполняемом файле есть все, что нужно программе для запуска.

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

Созданием динамической библиотеки занимается такой компилятор, как коллекция компиляторов GNU, более известная как GCC. Сначала соберите все свои функции в один каталог и выполните следующую команду, чтобы преобразовать файлы C в файлы O или файлы Object.

Команда Linux «nm» с флагом -D для вывода списка значений динамических символов и типов символов.

Команда Linux «ldd», за которой следует и Executable, печатает общие библиотеки, необходимые для исполняемого файла, в командной строке.

Команда Linux «ldconfig» создает ссылки и кеширует последние общие библиотеки, найденные в каталоге, указанном в командной строке.

Чтобы временно перейти к другой библиотеке для использования исполняемым файлом, команда Linux «export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH» сообщает операционной системе, где следует искать библиотеки перед стандартным набором каталогов. Теперь ваша динамическая библиотека готова к использованию исполняемым файлом.

Наслаждаться.