为第三方库libA封装对malloc的调用.a,但不是为了libb
Wrap calls to malloc for third party library libA.a, but not for libB.a
假设您有一个目标文件main。o和两个外部第三方静态库libA。b。你想把它们连在一起。但是您希望封装来自libA的对malloc的调用。a(用你自己的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。问题是,如何让它只对其中一个有效?
我的另一个问题得到了一个很好的答案,那是更具体的。
包装malloc,但只适用于某些输入文件(object和lib)
相关文章:
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 如何包装第三方DLL在R中使用
- 将 OpenCV 与 CMAKE 中的项目一起构建为第三方库的正确方法
- 第三方 API 中的编译错误 - Visual Studio
- 在一个解决方案中针对第三方静态库 (Creo) 的不同版本(版本)进行构建
- Android NDK:用于第三方Java库的静态或共享C++运行时
- 从第三方定义的类继承时shared_from_this
- Qt应用程序找不到第三方DLL并崩溃
- CMake 包含非 cmake 库的第三方标头
- 我可以将c ++清理器仅应用于程序的一部分而不是第三方库吗?
- CMake:Android Studio 原生活动项目无法在项目根目录之外找到第三方库
- 为什么无法覆盖涉及第三方代码的模板类的运算符<<?
- Android NDK - C++ 异常会导致第三方原生库崩溃
- 与第三方公共图书馆/代码接口
- 减少第三方库的导出符号
- 如何从支持linux/mac操作系统的第三方代码为我的c#项目创建dll
- 如何调试visual studio 2017生成的C++代码.android中的SO文件和其他第三方库
- C++如何组织(管理)第三方库
- C++第三方库 typedef 与标准 stdin.h 冲突
- 为第三方库libA封装对malloc的调用.a,但不是为了libb