~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ FC8D84D5A271A7763F199CCF90D524CC__1708518120 ✰
Заголовок документа оригинал.:
✰ Static library - Wikipedia ✰
Заголовок документа перевод.:
✰ Статическая библиотека — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Static_library ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/fc/cc/fc8d84d5a271a7763f199ccf90d524cc.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/fc/cc/fc8d84d5a271a7763f199ccf90d524cc__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 06:43:58 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 21 February 2024, at 15:22 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Статическая библиотека — Википедия Jump to content

Статическая библиотека

Из Википедии, бесплатной энциклопедии

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

Преимущества и недостатки [ править ]

Есть несколько преимуществ статического связывания библиотек с исполняемым файлом вместо их динамического связывания . Наиболее важным преимуществом является то, что приложение может быть уверено, что все его библиотеки присутствуют и имеют правильную версию. Это позволяет избежать проблем с зависимостями, известных в просторечии как DLL Hell или, в более общем плане, ад зависимостей . Статическая компоновка также позволяет содержать приложение в одном исполняемом файле, что упрощает распространение и установку.

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

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

Зависит от среды [ править ]

В Microsoft Windows принято включать в приложение файлы библиотеки, необходимые приложению. [2] В Unix-подобных системах это встречается реже, поскольку системы управления пакетами для обеспечения доступности правильных файлов библиотеки можно использовать . Это позволяет совместно использовать файлы библиотеки между многими приложениями, что приводит к экономии места. Это также позволяет обновлять библиотеку для исправления ошибок и недостатков безопасности без обновления приложений, использующих библиотеку. На практике многие исполняемые файлы (особенно предназначенные для Microsoft Windows) используют как статические, так и динамические библиотеки.

Связывание и загрузка [ править ]

Любая функция статической библиотеки может вызывать функцию или процедуру из другой статической библиотеки. Компоновщик объектные и загрузчик обрабатывают это так же, как и другие файлы . Файлы статической библиотеки могут быть связаны во время выполнения с помощью связывающего загрузчика (например, загрузчика модуля X11 ). Однако вопрос о том, можно ли такой процесс назвать статическим связыванием, является спорным.

Создание статических библиотек на C/C++ [ править ]

Статические библиотеки можно легко создавать на C или C++ . Эти два языка предоставляют спецификаторы классов хранения для указания внешней или внутренней связи, а также предоставляют другие функции. Чтобы создать такую ​​библиотеку, экспортированные функции/процедуры и другие переменные объектов должны быть указаны для внешней компоновки (т. е. не используя C staticключевое слово ). Имена файлов статических библиотек обычно имеют " Расширение .a " в Unix-подобных системах [1] и " Расширение .lib » в Microsoft Windows .

Например, в Unix-подобной системе для создания архива с именем libclass.a из файлов класс1.о , класс2.о , class3.o будет использована следующая команда: [1]

ar rcs libclass.a class1.o class2.o class3.o
 

скомпилировать программу, которая зависит от класс1.о , class2.o и class3.o можно было бы сделать:

cc main.c libclass.a
 

или если libclass.a помещается в стандартный путь к библиотеке, например /usr/local/lib )

cc main.c -lclass
 

или (во время связывания)

ld... main.o -lclass...
 

вместо:

cc main.c класс1.o класс2.o класс3.o
 

См. также [ править ]

Ссылки [ править ]

  1. ^ Перейти обратно: а б с «Статические библиотеки» . ТЛДП . Проверено 3 октября 2013 г.
  2. ^ Андерсон, Рик (11 января 2000 г.). «Конец ада DLL» . microsoft.com. Архивировано из оригинала 5 июня 2001 г. Проверено 31 августа 2013 г. Частные библиотеки DLL — это библиотеки DLL, которые устанавливаются вместе с определенным приложением и используются только этим приложением.
Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: FC8D84D5A271A7763F199CCF90D524CC__1708518120
URL1:https://en.wikipedia.org/wiki/Static_library
Заголовок, (Title) документа по адресу, URL1:
Static library - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)