gpt4 book ai didi

c - 如何不对所有链接库使用 -wrap?

转载 作者:行者123 更新时间:2023-12-02 12:56:30 25 4
gpt4 key购买 nike

我的程序使用了几个预编译的静态库。我包装了 malloc 和 free,但我希望链接库之一使用“真正的”malloc 和 free。当我运行时:

gcc [...] -W1, --wrap=malloc -W1, --wrap=free [使用的库]

所有库都将使用包装函数。

这里有部分链接的方法吗?如果我动态链接这个库会怎样?

提前致谢,雅采克

最佳答案

您应该能够通过二进制静态库上的一些 Sprite 技巧来实现这一点。

假设您的库名为 libbar.a。然后,您可以在 objcopy 的帮助下将对 malloc() 的所有调用更改为 __real_malloc():

objcopy libbar.a --redefine-sym malloc=__real_malloc --redefine-sym free=__real_free libbar2.a

现在,如果您链​​接复制的(修改后的)libbar2.a 而不是原始(未包装的)libbar.a malloc() > 和 free() 应该被调用。

关于c - 如何不对所有链接库使用 -wrap?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60644255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com