Мне немного любопытно о внутреннем файле ELF
. И у меня есть вопрос:Зачем использовать общую библиотеку (.so) в Linux с флагом -fPIC?
Зачем нам нужно скомпилировать общую библиотеку (.so)
с флагом -fPIC
?
Хотя теоретически мы можем динамически связывать исполняемый файл со статически связанным файлом elf
. Это связано с тем, что таблица GOT
и PLT
в исполняемом файле необходимо обновить, в то время как исполняемый файл динамической ссылки можно оставить без изменений.
Я понимаю, что общая библиотека должна использоваться несколькими процессами, чтобы сохранить физическую память и дискового пространства. Но я до сих пор не понимаю, зачем нужен файл общей библиотеки (.so) для компиляции с -fPIC. – Boehm