В контексте компиляторов привязка - это фаза, на которой ссылки на адреса изменяются на фактические абсолютные адреса.
Когда программа скомпилирована , адрес каждого символа (переменной,функция) хранится в таблице символов, например, как относительное смещение от начала объектного модуля вместе с именем символа.Имя символа необходимо, поскольку символы могут вызываться из другого объектного модуля.
Когда программа связана , объектные модули объединяются в один программный файл, а имена символов небольше нужно.Если программа связана с известным абсолютным адресом, все адреса адресов могут быть связаны с абсолютными адресами уже на этом этапе.
Однако на рабочих станциях, таких как ПК, программа можетбыть загружены на любой адрес, поэтому адрес не известен во время ссылки.Поэтому дополнительная информация о перемещении сохраняется в файле программы, так что загрузчик может связывать адреса во время загрузки.
Связывание выполняется во время загрузки с использованием информации о перемещении.Когда известен адрес, по которому будет запускаться программа, загрузчик заменяет относительные адреса абсолютными адресами, используя информацию о перемещении, которая сообщает, где в коде необходимо внести изменения.
Для динамических объектов /Переменные, привязка может быть сделано в время выполнения .(Я думаю, это то, что обычно называют поздним связыванием.)
Обычно вам не нужно сильно заботиться о связывании, по крайней мере, когда используется раннее связывание.(Однако привязка во время выполнения может отрицательно повлиять на производительность и безопасность.)