静态和动态链接时的歧义

时间:2016-03-03 05:44:46

标签: c++ linux linker

我有一个链接到libA.1.a的可执行文件E,它也链接到libB.so。

libB.so链接到libA.4.so。

但由于libA.1.a与可执行文件一起加载,我怀疑libB.so也使用libA.1.a,我认为这可能会导致意外崩溃。我无法控制哪个版本的libA.x.so libB.so链接到,但我需要自己使用libA.1.a。

有没有办法让它工作,使libA.1.a的静态链接版本对libB.so不可用?

libA是C库libB,E是c ++

          E
       /     \
      /       \
  libB.so     libA.1.a
    |
 libA.4.so

编辑: libA.1和libA.4来自同一个库的不同版本。 libA.1和libA.4的api(因此导出?)几乎是相似的,但它们之间的实现肯定会发生变化。

0 个答案:

没有答案