Я работаю над созданием и связыванием разделяемой библиотеки (.so). Во время работы с ними всплыло много вопросов, на которые я не мог найти удовлетворительных ответов, когда искал их, поэтому поставил их здесь. У меня есть вопросы по общим библиотекам:
1.) Чем разделяемая библиотека отличается от статической библиотеки? Каковы Ключевые различия в том, как они создаются, они исполняются?
2.) В случае с разделяемой библиотекой, в какой момент задаются адреса, с которых будет загружаться и запускаться определенная функция в разделяемой библиотеке? Кто дает эти функции адреса загрузки / запуска?
3.) Будет ли приложение, связанное с общей библиотекой, работать медленнее, чем приложение, связанное со статической библиотекой?
4.) Будет ли различаться размер исполняемого файла приложения в этих двух случаях?
5.) Можно ли выполнить отладку на уровне исходного кода, перейдя к функциям, определенным в общей библиотеке? Нужна ли какая-то дополнительная вещь, чтобы эти функции были видны приложению?
6.) Какие плюсы и минусы в использовании библиотеки любого вида?
Спасибо.
-AD