В процессе сборки компилятор переводит код во временный формат, назовем его объектным файлом.В объектном файле есть список символов, которые компилятор не может разрешить, обычно это определения в другом месте.Этап компоновки отвечает за разрешение этих символов.
Процесс сборки передает файлы компоновщику до тех пор, пока не будут разрешены все символы.Здесь нет списков физических зависимостей, только списки символов для разрешения.Это позволяет разрешать символы с использованием разных библиотек.Например, можно использовать библиотеку Windows для решения конкретных проблем Windows;библиотека Linux для конкретных проблем Linux.Это явно не означает, что программа зависит от библиотеки Windows;это также может зависеть от Linux.
Некоторые компиляторы могут генерировать списки зависимостей, обычно для использования в процессе сборки.Тем не менее, конечная ответственность лежит на программисте.