c - 静态库中函数调用中的多个符号
问题描述
我需要编译一个静态库,它继承同名的函数,并且这些函数还相互调用。有没有办法解决我的问题?
这是最小的示例:
add_outer.c
#include "bridge.h"
int add(int a, int b){
return add_bridge(a,b);
}
桥接器
#include "add_inner.h"
int add_bridge(int a, int b){
return add(a,b);
}
add_inner.c
int add(int a, int b){
return a+b;
}
现在我的问题:
- 我不能改变结构
- 我根本无法修改代码
- 需要编译成静态库
- 所以我不能使用版本脚本(->共享库)作弊
解决方案
与其将它们一起编译,不如编写一个.c
文件
#define add something_else
然后和
#include
_add_bridge.c
add_inner.c