---
title: Линковка
seo:
  title: Линковка — C++ Developer
  description: Тема «Линковка» для собеседования C++ Developer. Что именно компонует линкер?
---

[Все темы C++ Developer](/c-developer)

## <strong>Что именно компонует линкер?</strong> [#q-14bee738d69b81cfb58be9b129e04dd9]

Линкер в программировании — это инструмент, который объединяет различные объектные файлы и библиотеки в один исполняемый файл или библиотеку. В процессе компоновки линкер выполняет следующие задачи&#58;

1. <strong>Разрешение ссылок</strong>&#58; Линкер связывает внешние и внутренние
   ссылки между различными объектными файлами. Он ищет и соединяет вызовы
   функций и доступы к переменным с их определениями.

1. <strong>Объединение сегментов</strong>&#58; Собирает однотипные сегменты кода
   и данных из разных объектных файлов в единые секции исполняемого файла.

1. <strong>Оптимизация</strong>&#58; Удаляет избыточный код и данные, которые не
   используются в конечном приложении
   <code>&#40;dead code elimination&#41;</code>.

1. <strong>Динамическая компоновка</strong>&#58; Для динамических библиотек
   <code>&#40;DLL&#44; SO&#41;</code> линкер организует таблицы импорта и
   экспорта, которые используются при загрузке библиотек в память во время
   выполнения программы.

Результатом работы линкера является исполняемый файл или библиотека, готовые к запуску на целевой машине.

:::note[Ссылки для изучения]

1. [Руководство новичка по эксплуатации компоновщика (линкера)](https://habr.com/ru/articles/150327/)
   :::
