Вот что интересно (может быть, вопрос совсем глупый, прошу сильно не пинать, если так): какие правила линковки к shared library, если на нее есть некоторое количество симлинков? Например, в RH8 есть такие файлы: /usr/lib/libz.so -> /usr/lib/libz.so.1.2.1.1 /usr/lib/libz.so.1 -> /usr/lib/libz.so.1.2.1.1 /usr/lib/libz.so.1.2.1.1 Спрашивается, что пропишется в executable, рожденный gcc-ом с подключеной libz? Проверка: ====ztest.c==== int main() {return 0;} ============== $ gcc ztest.c -o ztest -lz $ ldd ./ztest libz.so.1 => /usr/lib/libz.so.1 (0x00726000) libc.so.6 => /lib/tls/libc.so.6 (0x005de000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x005c5000) objdump показываетс, что в секции NEEDED действительно прописано "libz.so.1". Почему именно ".so.1"? В новых дистрибах появилась новая версия libz (1.2.1, насколько я понимаю). Появляется симлинк libz.so.2, и пропадает симлинк libz.so. Так что если программа залинкована на libz.so, то скорее всего работать она не будет. Опять же: как будет использоваться эта libz.so.2, если со старых программ на нее нет ссылки? Или libz.so.1=> libz.so.2? Так вот вопрос: как компилятор опереляет, к какому симлинку линковать? Заранее большое спасибо за объяснения.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум skipping incompatible /usr/lib/libz.a when searching for -lz (2016)
- Форум Непонятная зависимость libstdc++ (2009)
- Форум Статическая сборка программ (2006)
- Форум Ставлю сервер bf1942, проблемы с ldd (2011)
- Форум [ubuntu karmic] imagemagick и fft (2010)
- Форум Частые сегфолты R под HP-UX (проблема со сборкой?) (2018)
- Форум Проблема с запуском демона «sshd» + вопрос по Linux. (2005)
- Форум 2sS: ldd `which ekiga` при USE="-gnome -avahi -dbus" (2006)
- Форум Помогите!!! Скомпилить прог у и запустить еёан другой машине. (2004)
- Форум Есть что-то похожее на GtkHtml (2001)