Номера версий в общих объектных файлах

Я создаю общий объектный файл из группы исходных файлов C ++ с помощью GCC. Во всех примерах руководств по созданию файлов .so показан файл, созданный с номером версии после суффикса .so . Например:

gcc -shared -Wl,-soname,libmean.so.1 -o libmean.so.1.0.1  calc_mean.o

Это приведет к созданию файла .so libmean.so.1.0.1

Кроме того, если я просматриваю каталог / usr / lib на моем локальном компьютере, я вижу, что многие из файлов .so имеют номера версий в конце.

Однако, когда я компилирую общий объектный файл и поместите его в / usr / lib , компоновщик не сможет его найти, если я поставлю номер версии в конце. Если я удалю номер версии, все будет нормально. Меня действительно не волнует, указывать номер версии или нет, я просто не понимаю, почему это кажется обычным соглашением, и все же это приводит к тому, что общая библиотека не работает с компоновщиком. Итак, что здесь происходит? Почему существует соглашение о размещении номера версии в конце . итак имя файла?

11
задан Channel72 22 April 2011 в 21:22
поделиться