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


解決unrecognized relocation (0x2a) in section .text

問題:

/usr/bin/ld: …/deps/zw/lib/libdmsdk.a(http.o): unrecognized relocation (0x2a) in section `.text’
/usr/bin/ld: final link failed: 錯誤的值
collect2: 錯誤:ld 返回 1
make: *** [thermometry] 錯誤 1

解決方案:

查看ld 版本 ,使用命令:ld -v

GNU ld version 2.25.1-22.base.el7
  • 1

通過網上搜素可知,是ld版本過低,因此使用更高版本

GNU ld version 2.27-28.base.el7_5.1
  • 1

使用高版本ld,就編譯通過了。

問題

今天使用的一個庫更新了,升級新的版本之后,在服務器上編譯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"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM