【问题标题】:Rename third party shared library has no effect?重命名第三方共享库没有效果?
【发布时间】:2023-03-11 09:49:01
【问题描述】:

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

【问题讨论】:

    标签: gcc linker shared-libraries


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多