gpt4 book ai didi

c++ - 为第三方库 libA.a 包装对 malloc 的调用,但不为 libB.a 包装调用

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:49:28 25 4
gpt4 key购买 nike

假设您有目标文件 main.o 和两个外部第三方静态库 libA.a 和 libB.b。并且您想将它们链接在一起。但是您想包装从 libA.a 到 malloc 的调用(用您自己的 malloc 替换),而不是 libB.a。

你会怎么做?

这是个有趣的问题,但它可以解决吗?

(为了让它更有趣,假设它是 c 和 c++ 代码的混合:))

编辑 1:

为了让事情更清楚。我将向您展示如何为这两个库完成此操作:

gcc -static -Wl,--wrap=malloc -o main.out main.o mem.o -lA -lB

这里的 mem.o 文件包含函数 __wrap_malloc 的代码。但这将导致两个库都使用自定义 malloc。问题是,如何让它只对其中一个起作用?

最佳答案

我的另一个问题得到了很好的回答,更具体。

Wrap malloc but only for some of input files (object and lib)

关于c++ - 为第三方库 libA.a 包装对 malloc 的调用,但不为 libB.a 包装调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31726214/

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