Для начала скажем в двух словах, что статические библиотеки C похожи на книжную полку. Теперь Книжные полки и то, что они содержат, субъективны, да, поэтому в этом случае давайте представим, что на них много Книг, Дневников, материалов для письма и многого другого. Нравится!

Во-первых, что такое статическая библиотека? Ну, это буквально файл, который собирает нечто, называемое объектными файлами. Объектные файлы — это просто машинный код, скомпилированный из файла программы, пропущенного через компилятор; gcc. Теперь это более широкая картина: статические библиотеки можно использовать как единую структуру при компоновке программы. Это удобный способ сделать все ваши файлы программ на языке C исполняемыми за один раз, вместо того, чтобы идти один за другим и компилировать каждый из них.

Чтобы создать статическую библиотеку, вы должны сначала превратить свои файлы программы C в объектные файлы, которые перейдут в библиотеку, выполнив эту команду в командной строке:

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

Здесь произошло следующее: была создана статическая библиотека с именем liball.a, и мы использовали звездочки (*) и точки o (.o), чтобы поместить все файлы, оканчивающиеся на .o. расширение в статическую библиотеку. Команда ar используется для создания, изменения или извлечения файлов из архивов системы. Команда rc на самом деле представляет собой две опции, которые можно комбинировать. rпредписывает системе заменить старые объектные файлы новыми, а cпредписывает системе создать статическую библиотеку, если ее нет на диске.

Затем вы проиндексируете библиотеку, используя:

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

Теперь мы готовы использовать нашу статическую библиотеку, и это делается с помощью следующей команды, и я разобью ее в абзаце под картинкой:

Что это делает, так это сначала создает программу, используя объектный файл с именем «main.o» и любые необходимые символы из нашей созданной библиотеки с именем «все». Обратите внимание, что мы исключили части "lib" и ".a" из-за синтаксиса с командами. Наконец, компоновщик возвращает эти части к имени библиотеки и имени искомого файла. «-L» просто уведомляет компоновщик о том, что библиотеки могут быть найдены в текущем каталоге.

В заключение мы создали нашу статическую библиотеку и теперь сможем использовать ее благодаря ее индексированию. Я надеюсь, что это поможет прояснить и научить вас, как много о статических библиотеках. Спасибо за чтение!