Shared libraries use version numbers to allow for upgrades to the libraries used by applications while preserving compatibility for older applications. This article reviews what[he]apos[/he]s really going on under the book jacket and why there are so many symbolic links in /usr/lib on a normal Linux system.
Source: LXer – Dissecting shared libraries