【发布时间】:2017-01-06 20:07:27
【问题描述】:
阅读thesequestions后,我正在寻找有关如何控制符号解析顺序的更多详细信息。
在我的问题中,我有主要的可执行文件exec。 exec 动态链接到 a.so 和 c.so。 a.so 动态链接到 b.so。 b.so 调用函数foo,通常由c.so 提供,但在这种情况下也由exec 提供。 b.so 仅适用于 c.so 的 foo 实现。
情况示意图:
exec (foo caller and provider)
| \
a.so |
| |
b.so | (foo caller)
| /
c.so (foo provider)
我只能控制a.so的编译/来源,我将a.so链接到exec和LD_PRELOAD。
我希望在exec 中调用foo 以解析为exec 的实现,并调用b.so 以解析为c.so 的实现。这种在不同对象中进行不同符号查找的事情是否可能?
【问题讨论】:
标签: linux ld dynamic-linking dynamic-loading symbol-table