When you do e.g. : g++ prog.c -L mylib/ -licudata
.. then the program will link to libicudata.so,
which is usually a link to libicudata.so.42.1 (or libicudata.so.42).
And afterwards running the executable, it will look for the "so name"
= libicudata.so.42 in the LD_LIBRARY_PATH.
A shared library holds information about "real name" (libicudata.so.42.1)
and "so name" (libicudata.so.42).
http://tldp.org/HOWTO/Program-Librar...libraries.html
..