Динамическая линковка в Unix
Имя
Спасибо.
следующие версии билиотек при инсталляции обычно давят предыдущие, и ссылочку на старое имя библиотеки приходится делать самостоятельно, но иногда и это не спасает.в
новая библиотека -- портирую и перекомпиляй
Так в том-то и штука. Если имена функций остаются теми же (а так и бывает, если новая версия отличается от старой на цифру после второй точки, например 2.1.2 после 2.1.1 то зачем все перекомпилять?
символьная ссылка, иначе такую библиотеку тяжело было бы назвать динамической
Значит, все-таки можно апргейдить библиотеку на более позднюю версию без перекомпиляции всего софта, который ее прилинковывает?
Так что переделывать бывает необходимо.
Сделай objdump -T на свой бинарник, увидишь требуемые версии. Этой информации должно хватить для определения возможности обмана путём символических ссылок.
Проще использовать метод тыка - линкер сам подскажет.
Короче, я на это забил. Легче обновлять одним махом все раз в полгода.
Оставить комментарий
yamushev
Такой вопрос: допустим я скомпилировал прогу, которая динамически прилинковала одну из существующих библиотек. Если я потом заменю эту библиотеку другой версией, надо ли будет пересобирать мою прогу?Т.е. фактически вопрос в следующем: при динамической линковке запоминается символическая ссылка на функцию в библиотеке (т.е. ее имя) или смещение точки входа в файле библиотеки?