如何使用C ++中的存根函数替换为共享库函数

时间:2016-10-01 16:27:24

标签: c++ gcc shared-libraries stubs

我不熟悉如何使用C ++存根函数。

我浏览了How to create stub shared libraries on Linux链接,但

1)我无法在c ++中获得完整的示例代码,其中存根是用C ++代码编写的。如果有人能指出我的确切示例?

2)此外,我还在研究如何在Linux上用完全相同名称的共享库函数替换存根?

如果有人可以在我的两个问题中帮助我,将会很有帮助。

2 个答案:

答案 0 :(得分:0)

您的问题的答案来自于对动态链接的黑色艺术的理解。阅读Ulrich Drepper的How to Write Shared Libraies对该主题的彻底处理。

答案 1 :(得分:0)

直接回答您的问题:

1)存根不是用C ++编写的。每当您将程序与共享库链接时,链接器都会自动创建存根。他们与任何特定语言无关;链接器仅根据符号名称直接从每个符号创建二进制/ asm存根。

2)动态链接器替换/重写存根以调用在运行时找到的实际动态库代码。