Difference between .so and .so.x

c, linux, shared-libraries

Solution

`.so` is a shared object, dynamically linked library. Usually there maybe multiple names for a dynamically linked library, most of the names being names for symbolic links to the remaining name, in these names `.x` stands for the major version of the library, or the full version number of the particular `so`

for example, `libmylib.so.2` would be the filename for the second major interface revision of the dynamically linked library `libmylib`

Problem

what is the difference between *.so and *.so.x and what does X signify and why this is done in the first place ?

Original source