Зачем использовать библиотеки на C?

Библиотеки на языке C мало чем отличаются от публичных библиотек в городах, поселках или кварталах. Публичная библиотека обеспечивает доступ к множеству информации в различных медиа-формах для всеобщего доступа и использования. Функции библиотеки C могут использоваться программистами для создания нескольких различных программ.

Как программист, вы можете неоднократно использовать одну и ту же функцию или функции. В этом случае лучше всего поместить эту функцию или функции в библиотеку, чтобы ускорить компиляцию программы. Библиотеки C хранят файлы в объектном коде; на этапе компоновки в процессе компиляции (Процесс компиляции) файлы в объектном коде доступны и используются. Быстрее связать функцию из библиотеки C, чем связать объектные файлы с отдельных карт памяти или дисков.

Два типа библиотек в C: статические и динамические

В C есть два типа библиотек: статические и динамические. Динамические библиотеки - это разделяемые библиотеки с определенными функциями, запускаемыми во время выполнения программы, которые способствуют «сокращению потребления памяти» (techopedia.com). Подключение динамических библиотек происходит в два этапа. Статические библиотеки создают объектные файлы и автономные исполняемые файлы (wikipedia.org). Эти библиотеки можно связать с программой без перекомпиляции кода. Статическое связывание или связывание статических библиотек создает файлы большего размера из-за создания автономных файлов (исполняемых файлов).

Как работают статические библиотеки?

Статические библиотеки добавляются на этапе компоновщика в процессе компиляции (см. Выше). Во время фазы компоновщика: компоновщик связывает доступ ко всем библиотекам для связывания функций с программой. Статические библиотеки объединяются с другими статическими библиотеками для создания исполняемой программы. Во время компиляции программы вызывается статическая библиотека для выполнения программы.

Как создавать статические библиотеки

Чтобы создать статическую библиотеку, вы должны использовать программу «ar» или архиватор. Идея в том, что эти функции архивируются до тех пор, пока они не понадобятся. Функция, сохраненная в формате .c, перекомпилируется в объектный файл .o.

Пошаговое создание статической библиотеки:

Шаг 1.

Создайте все свои исходные файлы. Исходные файлы содержат любые функции, которые вы будете использовать.

Шаг 2.

Скомпилируйте исходные файлы в объектные файлы. Используя GCC, используйте эту команду:

$ gcc -c *.c

Это изменит объектные файлы на исходные файлы.

Шаг 3.

Создайте статическую библиотеку. Используя «libholberton» в качестве примера имени библиотеки, эта команда создает статическую библиотеку.

$ ar -rc libholberton.a *.o

«Ar» - это программа, используемая для архивирования файлов. Буква «c» указывает программе создать библиотеку. Символ «r» сообщает программе о замене или обновлении старых файлов в библиотеке.
На третьем шаге была создана статическая библиотека.

При необходимости используйте ‘ranlib‹ libraryname.a ›для индексации библиотеки.

$ ranlib libholberton.a

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

Чтобы просмотреть содержимое статической библиотеки, войдите в нее, используя: ‘ar -t libholberton.a’ в командной строке.

Команда «nm» позволит вам увидеть символы в вашей библиотеке; nm lib_test.a.

Чтобы использовать статическую библиотеку, вызовите библиотеку на этапе компоновки при компиляции программы.

gcc main.c -L. -lholberton -o main

‘-L’ указывает путь к библиотеке.
‘-l’ стоит перед названием библиотеки.

Вы можете запустить исполняемую программу.

$./main

Как используются статические библиотеки?

Мы создали статическую библиотеку и теперь можем ее использовать.

Шаг 1.

Напишите программу:

#include "holberton.h"
int main(void)
{
    _puts("\"My Static Library is working.\"");
    return (0);
}

В заголовке: «holberton.h» содержит определения функций и функций, используемых для того, чтобы сообщить компилятору, как вызывать функциональные возможности. Он содержит «типы данных и константы, используемые с библиотеками» (geekforgeeks). Когда мы компилируем файл, мы вызываем библиотеку:

$ gcc main.c -L. -lholberton -o quote

Теперь мы можем запустить исполняемый файл:

$ ./quote

Если библиотека работает правильно, вывод должен быть:

"My Static Library is working."

Мы создали работающую статическую библиотеку.

Я надеюсь, что эта статья помогла вам лучше узнать статические библиотеки и библиотеки Си в целом. Это очень полезные инструменты при программировании на C и C ++. С самого начала программирования на C возникла потребность в библиотеках, месте для хранения часто используемых функций на языке C для облегчения доступа и использования программистами, использующими C.Создание библиотеки, адаптированной к вашим личным программным потребностям, может сэкономить вам много времени. во время компиляции и программирования. Мы обсудили, как работают статические библиотеки, и призываем вас изучить, как динамические библиотеки могут быть вам полезны.