/usr/bin/ld: */linux_x32/lib/libhpsocket.a(HPSocket.o): unrecognized relocation (0x2b) in section `.text'
/usr/bin/ld: final link failed: Bad value
在网上一番搜索后, 基本确定是ld链接器版本过低造成的。我的系统是 ubuntu 14.04
1、查看我的当前版本:
root@ubuntu:# ld -v
GNU ld (GNU Binutils) 2.24
2、下载所需版本
http://ftp.gnu.org/gnu/binutils/
3、编译安装
解压后执行安装脚本
脚本链接
https://blog.youkuaiyun.com/ACK_ACK/article/details/123988288
4、备份与修改
备份原系统中的ld链接器,发现是软连接, 使用ls /usr/bin/ld -al 原文件,发现指向了ld.bfd,将二者备份,使用刚编译的替换。
5、验证
root@ubuntu:~# ld -v
GNU ld (GNU Binutils) 2.26.20160125
再次编译程序成功。
这篇博客记录了解决Ubuntu14.04系统中ld链接器版本过低导致的编译错误的过程。作者首先确认问题是由ld版本引起,然后从GNU官网下载并编译了更高版本的binutils。通过备份原有链接器并用新版本替换,最终成功升级ld至2.26.20160125,从而解决了编译失败的问题。
7718





