0

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

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

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

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

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

4

2 回答 2

0

直接回答您的问题:

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

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

于 2016-10-01T16:48:13.080 回答
0

您的问题的答案来自对动态链接的黑魔法的理解。阅读 Ulrich Drepper 的How to Write Shared Libraies以全面了解该主题。

于 2016-10-01T16:36:01.013 回答