考虑以下共享库的创建。有可能做到吗
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
问题是发布链接命令的模块不知道版本号。
最佳答案
就个人而言,我一开始并不认为这是个好主意,但如果您真的需要它,可以使用一个名为 patchelf 的程序。 .它甚至有可能已经打包为您的发行版的一部分。因此,您应该能够在第二步通过调用以下命令设置 soname
:
patchelf --set-soname libfoo.so.X __targets/libfoo.so
关于linux - 联动后设置SONAME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45392319/