Это более общий вопрос. Я знаю, что Windows DLL может иметь файл ресурсов, настроенный с информацией о версии dll, но мне интересно, как сделать то же самое для общих объектов linux.Включить номер версии при компиляции общих объектов
Проблема, с которой я сталкиваюсь, на самом деле при запуске практически ничего на терминале, я получаю сообщение о том, что информация о версии libz.so.1 недоступна. Это связано с тем, что приложение присутствует со своей версией libz, которую я скомпилировал. Библиотека фактически является libz.so.1.2.3, и такая же версия существует в/lib. Файлы на самом деле являются ТОЛЬКО ИМЕЮЩЕЙСЯ версией библиотеки, но один из них (который я компилировал) говорит о том, что отсутствует информация о версии.
Итак, это заставляет меня задаться вопросом, как фактически включать информацию о версии в двоичный файл, а не только в имя файла. Было бы идеально, если есть решение, как
./configure .... some_version_option=1.2.3
Если я использую рабочую версию библиотеки:
ldd /usr/bin/git
linux-vdso.so.1 => (0x00007fffdfbff000)
libz.so.1 => /lib64/libz.so.1 (0x00007f3797fa7000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003c56000000)
libc.so.6 => /lib64/libc.so.6 (0x0000003c55c00000)
/lib64/ld-linux-x86-64.so.2 (0x0000003c55400000)
Если я использую версию я скомпилированный:
ldd /usr/bin/git
/usr/bin/git: libz.so.1: no version information available (required by /usr/bin/git)
linux-vdso.so.1 => (0x00007fff872b1000)
libz.so.1 (0x00007f83c9270000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003c56000000)
libc.so.6 => /lib64/libc.so.6 (0x0000003c55c00000)
/lib64/ld-linux-x86-64.so.2 (0x0000003c55400000)
Какая ошибка вы видите? Каков вывод команды 'ldd./Application', где программа - это любая программа, которая дает вам ошибку. – osgx