重命名第三方共享库没有效果?

时间:2017-06-08 01:00:56

标签: gcc linker shared-libraries

我有一个由第三方提供的库,文件名是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文件中。我该如何处理?

1 个答案:

答案 0 :(得分:0)

好的,让我回答一下我自己的问题。在libPXTrader.so中,有一个.dynamic部分,其中有一个名为SONAME的可选字段,如果SONAME设置为非空字符串,即使重命名libPXTrader.so,主文件仍然链接到libPXTrader.so