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