Skip to main content

Что такое статическая библиотека?

Статическая библиотека - это компьютерный архив, в котором хранится группа связанных файлов для удобной связи с программами. Содержимое этой библиотеки обычно представляет собой файлы машинного кода, которые не читаются человеком. Эти файлы машинного кода обычно генерируются из компиляции кода или подобного процесса. Большинство операционных систем имеют стандартные расширения для статических библиотек, поэтому их легко идентифицировать независимо от размера или содержимого.

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

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

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