链接两个带有变形符号的c库的最佳方法

qqrboqgw  于 2023-03-07  发布在  其他
关注(0)|答案(1)|浏览(103)

我尝试链接两个c库,例如在liba中有一个函数

int foo_a(int a) { return a + 1; }

其从libb被调用,但是虽然是重新定义的但是完全等价的符号,例如

int b = foo_b(1);

将这些结果链接为foo_b会导致缺少符号,实际上应该是foo_a。假设我不能修改或重新编译这些库,最好的方法是编写一个 Package 器,类似于wrapper.h

int foo_b(int a) { foo_a(a); }

或者有没有更好的(也许更好的)方法来添加符号转换(我假设仅仅修改liba的头文件是不够的)?

wkyowqbh

wkyowqbh1#

在ld链接器脚本中添加

PROVIDE(foo_b = foo_a);

相关问题