What does the message “can load library: /lib/libxxx.so, Incompatible version” mean ?
Ans: As shared libraries evolve it is necessary to have some sort of version numbering such that a program may be able to determine whether its execution will cause it to crash. This will happen for example if a function call has changed radically or doesn’t exist. Say we have a library – libc.so.4.3.3 T T T T / / | \ / / | \ / / | \ Library name / | \ / | \ Major version no. | Patch level. | Minor version no. If the Major version no. changes, then you will only be allowed to execute a program if the Major version number of the current library you are running matches that with which the program was linked with. This means if your program is compiled when you had libc.so.4.3.3 you will not be able to execute it if you get a more recent version of the DLL library, say libc.so.5.1.2. I.e it is no use attempting to create a link from libc.so.5.1.2 to libc.so.4 if your program requires libc.so.4. The Minor version no. is as name suggests, an indication that a minor change has undergone in t