我有一个由第三方提供的库,文件名是libPXTrader.so。但我想在我的项目中将其重命名为trader.so。所以我只是将其重命名。奇怪的是,在我使用
编译主文件之后gcc main.o third_party/lib/trader.so -o main
可执行文件main仍然链接到libPXTrader.so。 使用命令
ldd main
它显示无法找到libPXTrader.so。我使用了字符串trader.so并找到了字符串libPXTrader.so,我将这个共享库名称客户机硬编码到so文件中。我该如何处理?
答案 0 :(得分:0)
好的,让我回答一下我自己的问题。在libPXTrader.so中,有一个.dynamic部分,其中有一个名为SONAME的可选字段,如果SONAME设置为非空字符串,即使重命名libPXTrader.so,主文件仍然链接到libPXTrader.so