Jump to content

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

Статическая сборка — это скомпилированная версия программы, статически скомпонованная с библиотеками.

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

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

  • Определенные или экспортированные символы — это функции или переменные , которые присутствуют в модуле, представленном объектом, и которые должны быть доступны для использования другими модулями.
  • Неопределенные или импортированные символы — это функции или переменные, которые вызываются или на которые ссылается этот объект, но не определены внутри.

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

Динамическое связывание [ править ]

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

Динамическое связывание дает три преимущества:

  • Часто используемые библиотеки (например, стандартная системная библиотека ) должны храниться только в одном месте, а не дублироваться в каждом двоичном файле.
  • Если библиотека будет обновлена ​​или заменена, все программы, использующие ее динамически, сразу же получат пользу от исправлений. Статические сборки необходимо сначала перелинковать.
  • Размер двоичного исполняемого файла меньше, чем его статически связанный аналог.

Статичное здание [ править ]

В статически созданной программе динамическое связывание не происходит: все привязки выполняются во время компиляции .

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

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

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

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

  • Левин, Джон Р. (2000) [октябрь 1999 г.]. Линкеры и загрузчики . Серия Моргана Кауфмана по разработке программного обеспечения и программированию (1-е изд.). Сан-Франциско, США: Морган Кауфманн . ISBN  1-55860-496-0 . ISBN   978-1-55860-496-4 .
  • Керен, Гай (2002). Создание и использование статических и общих библиотек «C» . Маленькая группа программистов Unix (LUPG).
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 1df43fb40dd54eb47f785dde1afe77ca__1711793520
URL1:https://arc.ask3.ru/arc/aa/1d/ca/1df43fb40dd54eb47f785dde1afe77ca.html
Заголовок, (Title) документа по адресу, URL1:
Static build - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)