Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Чем редакторы связей ОС отличаются от собственых редакторов компиляторов?

ФермаКактусов Высший разум (181254), закрыт 1 год назад
Лучший ответ
user49913 Просветленный (38634) 1 год назад
мне кажется, здесь не совсем корректно описано, будто используется либо тот, либо этот
на самом деле в случае динамической линковки сначала какую-то часть работы во время сборки делает линкер компилятора, записывает результаты работы (список нужных библиотек, расположение динамических символов, ...) в экзешник, а потом при запуске экзешника остальное доделывает линкер ОС - находит и подгружает в память динамические библиотеки, расставляет в нужных местах адреса, по которым он подгрузил библиотеки (вот это самое редактирование связей, также см. PLT, GOT, ...)
в случае статической линковки линковщику ОС вообще делать почти нечего, просто содержимое экзешника в память загрузил и поехали

встречный вопрос: тут у самых дремучих олдфагов какой-то бойцовский клуб что ли, почему на вопросы моментально прилетает по N лайков от всяких высших разумов? вы тут на зарплате у мейлрушников что ли сидите?
ФермаКактусовВысший разум (181254) 1 год назад
единомышленики прилетают;;)
Остальные ответы
Def Просветленный (36921) 1 год назад
В тексте рассматривается нечто очень древнее и я бы просто игнорировал данную информацию

В современных ОС есть загрузчики (исполняемых файлов), одной из функций которых является обеспечение динамической линковки, что описано в ответе выше. Но такая линковка производится всегда над исполняемыми файлами, которые уже отлинкованы из объектных файлов при сборке.

Возможности запустить нелинкованный (те не привязанный даже к динамическим библиотекам) объектный файл нет, всегда запускается именно исполняемый файл, формат которого, впрочем в редких случаях может совпадать с тем, что используется для хранения обьектных
Похожие вопросы