Хорошие новости: если вы начинаете с C, я хочу сказать вам, что C предоставляет мощные библиотеки вызовов инструментов. Они могут быть статическими или динамическими.

Но сначала, что такое библиотека в C?

Набор именованных функций. Библиотека также может быть определена как файл, содержащий несколько объектных файлов. C имеет статические и динамические библиотеки.

Различия между статическими и динамическими библиотеками.

В статической библиотеке когда вы вызываете функцию в основном, в процессе компиляции компилятор свяжет код, который вы написали в основном, с код функции, которая находится в библиотеке и будет добавлена ​​в конец ссылки.

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

Ну, вы можете спросить, почему я должен использовать библиотеки?

На это есть много причин:

  • Библиотеки предоставляют вам множество функций
  • Все функции, содержащиеся в библиотеках, полезны
  • Вы можете сэкономить время, используя библиотеки (помните, что они содержат полезные функции), а не пытаться их создавать.

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

  1. Во-первых, нам нужно скомпилировать и собрать наши файлы «.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