Here's how to use a soname:
-Wl,-soname,libbar.so instructs linker to mark the shared library libfoo.so with the soname libbar.so.$ gcc -fPIC -c -Wall -g mod1.c mod2.c mod3.c $ gcc -shared -Wl,-soname,libbar.so -o libfoo.so \ mod1.o mod2.o mod3.o
Linker detects that libfoo.so contains the soname libbar.so and embeds the latter name inside the executable.$ gcc -g -Wall -o prog prog.c libfoo.so
Dynamic linker cannot find anything named libbar.so.$ LD_LIBRARY_PATH=. ./prog ./prog: error in loading shared libraries: libbar.so: cannot open shared object file: No such file or directory
$ ln -s libfoo.so libbar.so $ LD_LIBRARY_PATH=. ./prog Called mod1-x1 Called mod2-x2
At run-time this
link can point to a version of the library
which is different from the
version against which linking was performed.
(C) 2006, Michael Kerrisk