小编xne*_*ang的帖子

共享库符号冲突和静态链接(在 Linux 上)

我遇到了一个问题,该问题已在一篇好文章“共享库符号冲突(在 Linux 上)”中详细阐述。问题是,当执行和.so定义了同名函数时,如果.so调用这个函数名,它会调用执行中的那个函数,而不是.so本身的这个函数。

我们来谈谈这篇文章中的案例。我了解DoLayer()中的函数在编译时layer.o具有外部函数依赖性。DoThing()layer.o

但是在编译时libconflict.so,外部函数依赖项不应该就地解析并用conflict.o/DoThing()静态地址替换吗?

为什么layer.o/DoLayer()仍然使用动态链接来查找DoThing()?这是设计好的行为吗?

linux gcc elf dynamic-linking ld

7
推荐指数
1
解决办法
3702
查看次数

标签 统计

dynamic-linking ×1

elf ×1

gcc ×1

ld ×1

linux ×1