重命名第三方共享库不起作用



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

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

最新更新