Линковка
Что именно компонует линкер?
Линкер в программировании — это инструмент, который объединяет различные объектные файлы и библиотеки в один исполняемый файл или библиотеку. В процессе компоновки линкер выполняет следующие задачи:
-
Разрешение ссылок: Линкер связывает внешние и внутренние ссылки между различными объектными файлами. Он ищет и соединяет вызовы функций и доступы к переменным с их определениями.
-
Объединение сегментов: Собирает однотипные сегменты кода и данных из разных объектных файлов в единые секции исполняемого файла.
-
Оптимизация: Удаляет избыточный код и данные, которые не используются в конечном приложении
(dead code elimination). -
Динамическая компоновка: Для динамических библиотек
(DLL, SO)линкер организует таблицы импорта и экспорта, которые используются при загрузке библиотек в память во время выполнения программы.
Результатом работы линкера является исполняемый файл или библиотека, готовые к запуску на целевой машине.