我可以强制ld
链接到未版本化的 .so 文件吗?
在 linux 下,当我将 C++ 程序链接到共享库时,它将绑定到版本化的 .so 文件,这通常是一个非常好的主意。例如,如果我用
g++ main.cxx -l somelib
然后检查
ldd ./a.out
它会打印出类似的东西
libsomelib.so.1 => /xxxx/somelib/libsomelib.so.1
由于其他地方的系统损坏,此文件安装在目标中,libsomelib.so
而不是像通常那样libsomelib.so.1
使用符号链接。我无法更改此设置,因此作为一种解决方法,我想更改我的 makefile 以链接到未版本化的 .so 文件。(二进制兼容性在这里不是问题,因为一切都在受控环境中)。