gcc этого не знает.Он знает, что есть функция printf
, и знает, как ее вызвать, но генерируемый объектный файл содержит вызов неразрешенного символа.
Символ затем разрешается компоновщиком, который получает всеваши объектные файлы и библиотеки.Компоновщик находит символ printf
в библиотеке и после объединения всех соответствующих модулей обновляет неразрешенные вызовы.