Зачем использовать статические библиотеки?
В основном потому, что они быстрее выполняются, так как функции находятся внутри исполняемого файла и нам не нужно их искать. Статическая библиотека C представляет собой набор нескольких функций, которые мы обычно используем для написания наших программ, например, стандартная библиотека «stdio.h» содержит различные функции, такие как printf, puts, putchar и т. д. Мы также можем создавать собственные библиотеки для C первое, что нам нужно сделать, это создать наши собственные функции. Как только мы создадим наши функции и наш файл .h (заголовок со всеми прототипами функций), мы можем начать создавать нашу собственную статическую библиотеку. Когда все наши функции скомпилированы и имеют расширение .C, мы должны начать их компилировать, чтобы они имели расширение .o. Это делается командой gcc -c program.c -o program.o.

Эта команда служит для компиляции наших программ в расширение .o, gcc для компиляции, флаг «-c» для отказа от создания исполняемого файла, флаг -o служит для генерации исполняемого файла. Как только у нас есть все наши функции с расширением «.o», теперь мы можем приступить к созданию нашей статической библиотеки (P.S., у нас должны быть все функции в одной папке).

Теперь, когда у нас есть все наши функции, скомпилированные с расширением «.o», мы должны начать создавать нашу статическую библиотеку, это мы делаем с помощью команды: ar -rc имя_библиотеки.a функция1.o функция2.o… или просто ar -rc имя_библиотеки.a *.o. команда «ar» используется для создания статической библиотеки из объектных файлов (.o), а «*.o» учитывает только файлы «.o». Как только это будет сделано, необходимо проиндексировать его. Команда, используемая для создания или обновления индекса, называется «ranlib» и вызывается следующим образом:

ранлиб libutil.a

Так в чем смысл использования ranlib?

Мы делаем это для того, чтобы проиндексировать наш файл.

Какие команды можно использовать для вывода списка символов, хранящихся в статической библиотеке?

Чтобы вывести список символов в нашей статической библиотеке, мы можем использовать команду «nm» или команду «ar».