Прежде чем представить статическую библиотеку, нам нужно знать определение и использование библиотеки.
Что такое библиотека в программировании и как она работает?
Библиотека является одним из наиболее важных инструментов, которые нужны пользователям при кодировании. Библиотека представляет собой набор функций или программ, которые собраны и организованы в файл. Все функции в библиотеке представляют собой файл объектов, который можно получить на этапе компоновки процесса компиляции. Таким образом, пользователи могут легко находить и использовать в библиотеке нужные им функции или переменные. Кроме того, использование библиотек быстрее, чем связывание отдельных файлов с программой, поэтому это повысит эффективность программ и сэкономит время кодирования. Существует два типа библиотек:
- Статическая библиотека — это библиотека, содержащая все объектные файлы, связанные с программой на этапе компоновки. Особенность объектных файлов в статической библиотеке заключается в том, что они не имеют значения во время выполнения, выполняется только программный файл, связанный с библиотекой. Статическая библиотека очень полезна, но у нее есть большой недостаток: переносимость. Если мы обновляем или меняем статическую библиотеку, нам нужно снова скомпилировать исполняемый файл, а статическая библиотека будет занимать много памяти при ее использовании.
- Второй тип библиотеки — это динамическая библиотека или общая библиотека. Однако основной темой этой статьи является статическая библиотека, поэтому я кратко опишу общую библиотеку. Объектные файлы в разделяемой библиотеке сначала не подключаются к программе, доступ к ним осуществляется только при выполнении программы.
Как создать статическую библиотеку?
Прежде чем мы создадим статическую библиотеку, нам нужно скопировать или переместить все файлы 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.