c++中存根函数的使用方式被共享库函数所取代

How stub functions in C++ are used are replaced by shared library functions

本文关键字:共享 库函数 取代 方式 存根 函数 c++      更新时间:2023-10-16

我对c++存根函数的使用很陌生。

我浏览了如何在Linux上创建存根共享库的链接,但是

1)我无法在c++中获得准确完整的示例代码,其中存根是用c++代码编写的。谁能给我指个确切的例子?

2)我也在寻找如何准确地用Linux上完全相同的名称共享库函数替换存根?

如果有人能帮助我解决我的两个问题,那将会很有帮助。

你的问题的答案来自于对动态链接的黑色艺术的理解。请阅读Ulrich Drepper的《如何编写共享库》,详细了解该主题。

直接回答您的问题:

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

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