ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

ubuntu20 下编译16下的链接错误和解决过程经验总结

2021-11-05 20:05:18  阅读:502  来源: 互联网

标签:bin engine ld .. 16 so usr ubuntu20 经验总结


工作项目。本来知道标准的推荐工作环境是ubuntu16,知道有个同事因为驱动的原因装的是20版本,也能work。我恰好问领导借的U盘是utuntu20版本,于是也安装的的20版本。其实是失策的。因为git库有些.so是在16下编译出来的,而且我拿不到源码。如果全部是源码,倒是可以尝试用20版本。

/usr/bin/ld: ../../../baidu-mapauto-engine/src/engine/dr/mk/lib/opencv/ubuntu/libopencv_imgproc.so: .dynsym local symbol at index 2 (>= sh_info of 2)
/usr/bin/ld: ../../../baidu-mapauto-engine/src/engine/dr/mk/lib/opencv/ubuntu/libopencv_imgproc.so: .dynsym local symbol at index 3 (>= sh_info of 2)

解决这个错误,参考了https://blog.csdn.net/wd1603926823/article/details/108245043。

在某个cmake文件中的链接选项加了,-fuse-ld=gold

另外我的/usr/bin/ld 指向  /usr/bin/ld.gold。但这仅仅是解决了编译错误。还有运行错误。使用ldd和lddtree工具,来看编译出来的guide_test依赖什么库,分别把路径加入到LD_LIBRARY_PATH中。发现系统同时需要libcrypto.so的两个版本。于是从ubuntu16上拷贝了老版本,libcrypto.so.1.0.0,放到/usr/local/lib下。

 

标签:bin,engine,ld,..,16,so,usr,ubuntu20,经验总结
来源: https://www.cnblogs.com/tangxiaosheng/p/15514997.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有