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

Что такое библиотека в программировании и как она работает?

Библиотека является одним из наиболее важных инструментов, которые нужны пользователям при кодировании. Библиотека представляет собой набор функций или программ, которые собраны и организованы в файл. Все функции в библиотеке представляют собой файл объектов, который можно получить на этапе компоновки процесса компиляции. Таким образом, пользователи могут легко находить и использовать в библиотеке нужные им функции или переменные. Кроме того, использование библиотек быстрее, чем связывание отдельных файлов с программой, поэтому это повысит эффективность программ и сэкономит время кодирования. Существует два типа библиотек:

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

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

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

gcc -c *.c

Вы можете использовать подстановочный знак *, чтобы сделать это быстрее, или ввести нужные объектные файлы после флага c. Команда изменит расширение .c на расширение .o, чтобы адаптировать стандарт статической библиотеки. Когда у вас есть все объектные файлы, мы запустим эту команду, чтобы создать статическую библиотеку:

ar -rc libnameofthelibrary.a *.o

Все статические библиотеки будут иметь расширение .a в конце. После запуска команды вы создали статическую библиотеку. Чтобы просмотреть содержимое библиотеки, вы можете использовать:

ar -t libnameofthelibrary.a

Если вы хотите обновить или добавить объектный файл в библиотеку, вы будете использовать командуranlib.

ranlib libnameofthelibrary.a

Если вы хотите увидеть значение символа, имя символа или другие символы в объектных файлах, вам нужна команда nm.

nm libnameofthelibrary.a

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

После создания статической библиотеки мы используем ее для компиляции программы.

gcc main.c -L. -lnameofthelibrary -o executed_file_name

Флаг -L помогает указать место, которое статическая библиотека может найти в заданном пути или каталогах. Флаг -l заменяет lib в начале и расширение .a в конце, когда мы компилируем программу с библиотекой.

Наконец, это краткое введение в статическую библиотеку на C.