假设你有对象文件main.o和两个外部第三方静态库libA.a和libB.b.而你想把它们联系在一起。但是你想从libA.a中包装对malloc的调用(用你自己的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。 问题是,如何让它只适用于其中一个?
答案 0 :(得分:0)
我的另一个问题是一个很好的答案,更具体。
Wrap malloc but only for some of input files (object and lib)