Я всегда смущался о том, как работает компоновщик, и его трудно искать.Как работает базовый процесс ссылок для ELF и PE
Чтобы продемонстрировать свой вопрос и предоставить основу для ответа, я покажу то, что знаю (или думаю, что знаю). Возможно, я ошибаюсь. :)
Во-первых, каждый .cpp-файл встроен в промежуточный файл (.o для Posix/ELF и .obj для Win/PE, я считаю). Этот промежуточный файл содержит все символы, определенные с помощью .cpp, из которого он был построен, и содержит инструкции для того, какие внешние ссылки ему нужно надлежащим образом разрешить. В качестве дополнения к этому, системы Posix позволяют объединять файлы .o в файл .a (что, похоже, не делает ничего более, чем объединяет? Какую команду это делает?). Является ли .lib эквивалентом Win/PE файла Posix .a?
Далее промежуточные файлы связаны друг с другом, внешние зависимости разрешены, и у вас есть исполняемый файл. Я пропустил какие-то шаги?
Спасибо!
Отлично, что отвечает на все мои вопросы. Благодаря! :) – Nayruden 2008-12-03 17:27:30