我有一个带有 soname 的共享库:libfoo.so
如何将我的二进制文件链接到 libfoo.so,以便我的二进制文件的 ELF 部分中的共享库名称为:libfoo5.so?
我尝试创建一个符号链接(symbolic link):libfoo5.so -> libfoo.so,然后这样链接我的库:
g++ ... -o mybinary *.o -Lpath -lfoo5
但是,当我打印出我的 ELF 二进制文件中的动态部分时,它显示为:
readelf -d 二进制文件
我仍然得到:
共享库:[libfoo.so]
最佳答案
您通常在构建共享库时这样做。有一个名为“soname”的链接器选项可以设置它。
我不知道你是否可以在构建后编辑它,但如果可能的话,它可能包含在名为“elfutils”的包中。该软件包包含几个旨在操作 ELF 对象文件的程序。
关于c - Linux:如何修改 ELF 二进制文件动态部分中的共享库名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3364490/