Page 1 of 1

【经验分享】如何替换静态库里定义的API

Posted: 2023年 Sep 15日 10:26
by 东皇007

当用户在开发过程中,如果发现静态库中的api的行为和期望的行为不一致。当我们没有这个静态库的源码的时候,有一个简单的方法绕过这个问题。
比如:
静态库的API:char* get_sw_verno();这个api返回是"0.0.1"。但是我们验证的时候,需要让其返回0.0.2。采用下面的步骤可以解决
1.某个c文件自定义一个char* my_get_sw_verno(),让其返回0.0.2.
2.修改链接脚本,
如:SECTIONS
{
.text :
{
get_sw_verno = my_get_sw_verno;
}
}
3.使用-T选项指定链接器脚本,生成固件,这样链接器在进行链接的时候,就会把my_get_sw_verno链接到固件中。