Кто-то может объяснить об именовании библиотеки Linux?

Я не получаю никакого вывода, когда мои настройки Test / Test Settings / Default Processor Architecture и сборки, которые ссылаются на мои тестовые проекты, не совпадают. В противном случае Trace.Writeline () работает нормально.

19
задан Nick Bolton 19 March 2009 в 21:19
поделиться

3 ответа

Из старого электронного письма я отправил коллеге об этом вопросе:

Позволяют нам посмотреть на libxml как на пример. В первую очередь, общие объекты хранятся в/usr/lib с серией символьных ссылок для представления версии availiable библиотеки:

lrwxrwxrwx 1 root root     16 Apr  4  2002 libxml.so -> libxml.so.1.8.14
lrwxrwxrwx 1 root root     16 Apr  4  2002 libxml.so.1 -> libxml.so.1.8.14
-rwxr-xr-x 1 root root 498438 Aug 13  2001 libxml.so.1.8.14

, Если я - автор libxml и я выпускаю новую версию, libxml 2.0.0, который повреждает интерфейсную совместимость с предыдущей версией, я могу установить его как libxml.so.2, и libxml.so.2.0.0. Обратите внимание, что это до прикладного программиста, чтобы быть ответственным о том, с чем он связывается. Если я являюсь действительно анальным, я могу связаться непосредственно с libxml.so.1.8.14, и любая другая версия приведет к моей программе, не работающей. Или я могу связаться против libxml.so.1 и надеяться, что libxml разработчик не повреждает совместимость символа на мне в 1. X версий. Или если Вы не заботитесь и беззаботны, просто связываетесь с libxml.so и получаете любую версию существует. Иногда, когда достаточно людей делает это, автор библиотеки должен стать творческим с более поздними версиями. Следовательно, libxml2:

lrwxrwxrwx 1 root root     17 Apr  4  2002 libxml2.so.2 -> libxml2.so.2.4.10
-rwxr-xr-x 1 root root 692727 Nov 13  2001 libxml2.so.2.4.10

Примечание, что существует № libxml2.so в этом. Похож на разработчика, уставшего от безответственных разработчиков приложений.

3
ответ дан 29 November 2019 в 20:17
поделиться

Путем Вы, как предполагается, формируетесь, x.y.z версия похожа на это:

  1. первый номер (x) является версией интерфейса библиотеки. Каждый раз, когда Вы изменяете открытый интерфейс, это число повышается.
  2. второй номер (y) является количеством пересмотра текущего интерфейса. Каждый раз, когда Вы вносите внутреннее изменение, не изменяя открытый интерфейс, это число повышается.
  3. третий номер (z) не номер сборки, это назад-compatability количество. Это говорит Вам, сколько предыдущий поддерживаются интерфейсы. Так, например, если версия интерфейса 4 является строго надмножеством интерфейсов 3 и 2, но полностью несовместимый с 1, то z=2 (4-2 = 2, самое низкое интерфейсное поддерживаемое количество)

Так x и z числа очень важны для системы, чтобы определить, может ли данное приложение пользоваться данной библиотекой, учитывая то, против чего было скомпилировано приложение. Y число главным образом для отслеживания исправлений ошибок.

23
ответ дан 29 November 2019 в 20:17
поделиться

Основное преимущество этого метода легко позволяет пользователям знать, какую версию библиотеки они имеют. Например, если я знаю ошибку, я добираюсь, был зафиксирован в 1.0.4, я могу легко проверить, какую версию библиотеки я связываю против и знаю - ли это правильный способ исправить ошибку.

Это число упоминается как "версия общего объекта" или "soversion" и является частью двоичного стандарта ELF. IBM имеет хороший обзор ELF в http://www.ibm.com/developerworks/power/library/pa-spec12/ .

4
ответ дан 29 November 2019 в 20:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: