假设您有对象文件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。问题是,如何使它只对其中一个起作用?
发布于 2015-07-30 16:24:08
我的另一个问题得到了一个很好的回答,那是比较具体的。
Wrap malloc but only for some of input files (object and lib)
https://stackoverflow.com/questions/31726214
复制相似问题