Компоновщик (также редактор связей, Линкер - от англ. Link editor, англ. linker ) - программа, которая выполняет компоновку - принимает на вход один или несколькообъектных модулей и собирает в исполняемый модуль.
Для связывания модулей компоновщик использует таблицы имен идентификаторов, созданные компилятором в каждом из объектных модулей. Такие имена могут быть двух типов:
-
Определенные или экспортируемые имена функций и переменных, определенные в данном модуле и предоставлены для использования другим модулям
-
Неопределенные или импортируемые имена - функции и переменные, на которые ссылается модуль, но не определяет их внутри себя
Работа компоновщика состоит в том, чтобы в каждом модуле конкретизировать ссылки на неопределенные имена. Для каждого импортируемого имени, определение которого находится в других модулях, упоминание имени заменяется на его адрес.