Статическая компоновка при сборке исполняемых модулей предполагает объединение программы и библиотек, от которых она зависит, в единый исполняемый файл во время компиляции и последующей линковки. 5 Связь между программой и библиотеками является фиксированной и установлена до того, как программа начнёт исполняться. 5 Изменить данную связь невозможно без повторного выполнения компиляции/линковки. 5
Динамическая компоновка предполагает, что программа и библиотеки не объединяются во время компиляции, а эта работа переносится на этап исполнения. 5 Вместо этого компоновщик помещает информацию в исполняемый файл, которая сообщает динамическому загрузчику, в каком разделяемом объекте (динамической библиотеке) расположен необходимый код. 56 При этом связь между программой и разделяемым объектом устанавливается во время её исполнения. 5 В момент загрузки производится поиск и линковка необходимых библиотек. 5
Таким образом, основное отличие в том, что при статической компоновке весь код объектов копируется из статической библиотеки в использующие их исполняемые файлы во время сборки, а при динамической компоновке включаются только те сведения, которые позволяют операционной системе найти и загрузить библиотеку DLL, содержащую элемент данных или функцию, во время выполнения. 1