全志XR806芯片 如何解决第三方静态库函数符号重复?

2024-02-02 16:11:01 浏览数 (2)

1.问题背景 联合开发中,由于软件保密,合作方仅提供.a静态库。但可能出现合作方提供的.a静态库和自身的.a静态库冲突,导致镜像合成失败,且可能因为合作方的各种缘故不方便修改静态库。

2.问题描述 程序编译过程中没有出错,但是在ld链接过程中提示错误:multiple definition of。

3.问题分析 1 对于在程序中可以修改的重复定义,直接修改程序即可。 2 multiple definition of的函数都在保密的.a库文件中,重复函数众多,且无法轻易更改程序。由于.a静态文件是由.o可执行文件打包而来,可以先对.a静态库解包,删除掉重复定义的.o可执行文件后重新打包即可。

4.解决方法 1 拆包.a静态库。

代码语言:javascript复制
ar -x libtarget.a

2 删除多余的.o文件。 3 重新打包静态库。

代码语言:javascript复制
ar crv libtarget.a *.o

4 重新编译。

原贴链接:https://bbs.aw-ol.com/topic/742

0 人点赞