libstc++.so.6.0.13
and libstdc++.so.0.19
are compatible. See the libstdc++ manual. You should have no problem running your program on the CentOS machine.
In general, shared libraries on Linux should follow the following versioning convention: libfoo.so.X.Y.Z
, where X
is the major number, and Y
and Z
are minor numbers. When X
is incremented, the new version is incompatible with the old version. Incrementing Y
means a compatible change to the ABI is made. A changed Z
means some bug has been fixed, but the interface is unchanged. Executable binaries contain references to the shared libraries they use, but these references only contain the major number. The actual library used is determined by the library symlink on the machine the program is run on, for example:
/usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.25