我学会了" 程序库HOWTO ".它提到soname用于管理如下的版本.
gcc -shared -fPIC -Wl,-soname,libfoo.so.1 -o libfoo.so.1.0.0 foo.c
ln -s libfoo.so.1.0.0 libfoo.so.1
ln -s libfoo.so.1 libfoo.so
Run Code Online (Sandbox Code Playgroud)
我得到的信息是,如果soname没有设置.它将等于libfoo.so.1.0.0,请参阅此处的答案.
我发现它也可以在没有soname的情况下工作,就像下面一样
gcc -shared -fPIC -o libfoo.so.1.0.0 foo.c
ln -s libfoo.so.1.0.0 libfoo.so.1
ln -s libfoo.so.1 libfoo.so
Run Code Online (Sandbox Code Playgroud)
所以我认为唯一有用的一点是,soname当您使用readelf -d libfoo.so命令检查时,该选项可以告诉您共享库的版本.
它还能做什么?