考虑以下创建共享库。是可以的吗
g++ -shared -o __targets/libfoo.so libfoo.cpp
some command that sets SONAME of __targets/libfoo.so to libfoo.so.X
而不是
g++ -shared -o __targets/libfoo.so -Wl,-soname,libfoo.so.X libfoo.cpp
问题是发出链接命令的模块不知道版本号。
答案 0 :(得分:1)
就个人而言,我认为这不是一个好主意,但如果你真的需要它,那就有一个名为patchelf的程序。甚至有可能它已作为您的发行版的一部分打包。因此,您应该可以通过调用以下命令在第二步设置soname
:
patchelf --set-soname libfoo.so.X __targets/libfoo.so