unrecognized relocation (0x2a) in section `.text`

问题

今天使用的一个库更新了,升级新的版本之后,在服务器上编译linux-x86-64版本的时候会出现错误:
/usr/bin/ld: libsdk.a(Imagexxx.cpp.o): unrecognized relocation (0x2a) in section .text
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status

随后在自己的电脑测试了一下,结果可以编译。

结合在stack overflow上看到的相关信息:
https://stackoverflow.com/questions/46058050/unable-to-compile-unrecognized-relocation

很可能是ld版本不对

确定了版本信息:
pc上ld版本:
GNU ld(GNU Binutils for Ubuntu) 2.26
服务器上ld版本:
GNU ld(GNU Binutils for Ubuntu) 2.24

解决

有root权限

$ sudo apt-get update
$ sudo apt-get install binutils-2.26

export PATH="/usr/lib/binutils-2.26/bin:$PATH"

没有root权限
下载源码:
https://ftp.gnu.org/gnu/binutils/

tar -zxvf binutils-2.26.tar.gz
cd binutils-2.26
./configure --prefix=/home/xxx/binutils
make
make install
export PATH="/home/xxx/binutils/bin:$PATH"
  • 10
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值