出现这个问题最有可能的原因为gcc版本与系统的ld版本不搭引起的。
ld的版本可以通过ld -v查看,像我使用gcc-6.1.0,ld版本为2.5 的时候就会报错,升至2.7该错误就会消失。
解决方法:
下载新版的binutils,网址为:http://ftp.gnu.org/gnu/binutils/
无需root用户,直接configure配置好路径,然后make && make install即可。最后配置在~/.bashrc利用export PATH指向binutils的bin文件即可。
souce ~/.bashrc或者重启终端之后,待查看 ld -v更新之后,重新编译,即可消除此错误。
unrecognized relocation (0x2a) in section `.text`_Tatannn的博客-优快云博客
当使用gcc-6.1.0时,如果ld版本低于2.7,可能会遇到unrecognizedrelocation错误。升级ld到2.7或更高版本可以解决问题。这需要下载binutils,配置路径并进行编译安装,最后更新环境变量PATH。完成这些步骤后,重新编译即可消除错误。
5万+

被折叠的 条评论
为什么被折叠?



