what is the difference between *.so and *.so.x and what does X signify and why this is done in the first place ?
Yes, the ". 1" indicates the version number. This makes it possible to have multiple versions of the same library side-by-side, whereas the most common version has a link with no version number. If there is no need to distinguish between different versions, the version suffix might not be present.
Static libraries, while reusable in multiple programs, are locked into a program at compile time. Dynamic, or shared libraries, on the other hand, exist as separate files outside of the executable file.
Each file has a different number at the end of it. These numbers represent versions of the library. They're very important as it's these versions that determine the role of each file. They're two popular versioning schemes.
Shared libraries are also called dynamic libraries. These shared libraries are linked in at runtime by the dynamic linker available on the operating system. Shared libraries usually end with the . so extension — an example is libboost.5.6.so.
.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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With