我不熟悉如何使用C ++存根函数。
我浏览了How to create stub shared libraries on Linux链接,但
1)我无法在c ++中获得完整的示例代码,其中存根是用C ++代码编写的。如果有人能指出我的确切示例?
2)此外,我还在研究如何在Linux上用完全相同名称的共享库函数替换存根?
如果有人可以在我的两个问题中帮助我,将会很有帮助。
答案 0 :(得分:0)
您的问题的答案来自于对动态链接的黑色艺术的理解。阅读Ulrich Drepper的How to Write Shared Libraies对该主题的彻底处理。
答案 1 :(得分:0)
直接回答您的问题:
1)存根不是用C ++编写的。每当您将程序与共享库链接时,链接器都会自动创建存根。他们与任何特定语言无关;链接器仅根据符号名称直接从每个符号创建二进制/ asm存根。
2)动态链接器替换/重写存根以调用在运行时找到的实际动态库代码。