user49913
Просветленный
(38634)
1 год назад
мне кажется, здесь не совсем корректно описано, будто используется либо тот, либо этот
на самом деле в случае динамической линковки сначала какую-то часть работы во время сборки делает линкер компилятора, записывает результаты работы (список нужных библиотек, расположение динамических символов, ...) в экзешник, а потом при запуске экзешника остальное доделывает линкер ОС - находит и подгружает в память динамические библиотеки, расставляет в нужных местах адреса, по которым он подгрузил библиотеки (вот это самое редактирование связей, также см. PLT, GOT, ...)
в случае статической линковки линковщику ОС вообще делать почти нечего, просто содержимое экзешника в память загрузил и поехали
встречный вопрос: тут у самых дремучих олдфагов какой-то бойцовский клуб что ли, почему на вопросы моментально прилетает по N лайков от всяких высших разумов? вы тут на зарплате у мейлрушников что ли сидите?
Def
Просветленный
(36921)
1 год назад
В тексте рассматривается нечто очень древнее и я бы просто игнорировал данную информацию
В современных ОС есть загрузчики (исполняемых файлов), одной из функций которых является обеспечение динамической линковки, что описано в ответе выше. Но такая линковка производится всегда над исполняемыми файлами, которые уже отлинкованы из объектных файлов при сборке.
Возможности запустить нелинкованный (те не привязанный даже к динамическим библиотекам) объектный файл нет, всегда запускается именно исполняемый файл, формат которого, впрочем в редких случаях может совпадать с тем, что используется для хранения обьектных