Хорошие новости: если вы начинаете с C, я хочу сказать вам, что C предоставляет мощные библиотеки вызовов инструментов. Они могут быть статическими или динамическими.
Но сначала, что такое библиотека в C?
Набор именованных функций. Библиотека также может быть определена как файл, содержащий несколько объектных файлов. C имеет статические и динамические библиотеки.
Различия между статическими и динамическими библиотеками.
В статической библиотеке когда вы вызываете функцию в основном, в процессе компиляции компилятор свяжет код, который вы написали в основном, с код функции, которая находится в библиотеке и будет добавлена в конец ссылки.
В динамической библиотеке будет происходить тот же процесс, когда вы компилируете свой код с кодом вызываемой функции, разница в том, что в конце компоновщика он будет добавлен не код вызываемой вами функции, а адрес, по которому эта функция находится в библиотеке.
Ну, вы можете спросить, почему я должен использовать библиотеки?
На это есть много причин:
- Библиотеки предоставляют вам множество функций
- Все функции, содержащиеся в библиотеках, полезны
- Вы можете сэкономить время, используя библиотеки (помните, что они содержат полезные функции), а не пытаться их создавать.
Как создать статическую библиотеку в Unix? Как это работает?
- Во-первых, нам нужно скомпилировать и собрать наши файлы «.c». Для этого мы используем следующую строку команды:
gcc -с *.с
(нажмите здесь, чтобы прочитать, что делает опция -c в gcc)
Команда gcc -c *.c скомпилирует все файлы .c и создаст файл с расширением «.o», что означает объектный код.
Например:
My_file.c Hello_wolrd.c
gcc -с *.с
ls
Мой_файл.c Мой_файл.o Hello_world.c Hello_world.o
Отлично, наши файлы .c преобразованы в объектные файлы. Это означает, что мы готовы создать нашу статическую библиотеку.
2. Во-вторых, используем команду ar, что означает архиватор. Он используется для создания статической библиотеки:
ar rc my_library.a My_file.o Hello_world.o
or
ar rc my_library.a *.o
Эта команда создает статическую библиотеку с именем my_library.a и помещает в нее копии объектных файлов My_file.o, Hello_world.o.
Если используется команда *.o, она скопирует все файлы, заканчивающиеся на .o.
Как использовать библиотеки?
Итак, после того, как архив создан или изменен, необходимо его проиндексировать.
Команда, используемая для создания или обновления индекса, называется ranlib и вызывается следующим образом:
ранлиб my_library.a