2

Это не версия, вот пример имени: libcurl.so.4.3.0 версия 7.40

me@pc:/somefirmware/extracted/lib$ strings libcurl.so.4.3.0 | grep -i "libcurl"
libcurl.so.4
# This file was generated by libcurl! Edit at your own risk.
# Fatal libcurl error
Protocol "%s" not supported or disabled in libcurl
CLIENT libcurl 7.40.0
CLIENT libcurl 7.40.0
CLIENT libcurl 7.40.0
libcurl/7.40.0
Unrecognized content encoding type. libcurl understands `identity', `deflate' and `gzip' content encodings.
A requested feature, protocol or option was not found built-in in this libcurl due to a build-time decision.
A libcurl function was given a bad argument
An unknown option was passed in to libcurl
libcurl is now using a weak random seed!

Вторым вопросом было бы, как получить правильный номер версии, но у меня есть ощущение, что это может быть невозможно (сделать это в 100% случаев). Здесь вы можете получить его со строками, но в других библиотеках он даст 10 различных версий, например

1 ответ1

1

«.So» (Shared Object) - это библиотека. Как таковой, он обеспечивает определенный интерфейс для программ, ссылающихся на него, чтобы использовать функциональные возможности, предоставляемые библиотекой, также называемые API. В общих объектах этот API является версионным, поэтому программы, использующие библиотеку, могут использовать версию, с которой они совместимы. Смотрите также этот ответ на "Unix & Linux".

Упомянутая вами версия библиотеки может быть независимой от версии API. Версия библиотеки будет описывать код, который составляет функциональность библиотеки, реализацию. Он может увеличиться, когда исправлены ошибки или оптимизированы алгоритмы. Но в то же время API может оставаться стабильным, что означает, что имена функций и их параметры не меняются, поэтому версия API остается неизменной.

Цифра после .so описывает версию API.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .