Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页

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

    其它全志芯片讨论区
    xr806 xr872 faq 技术支持
    1
    1
    1315
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • q1215200171
      budbool LV 9 last edited by

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

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

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

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

      ar -x libtarget.a
      

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

      ar crv libtarget.a *.o
      

      4 重新编译。

      1 Reply Last reply Reply Quote Share 0
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • 1 / 1
      • First post
        Last post

      Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

      行为准则 | 用户协议 | 隐私权政策