我无法在我的Linux pc上编译任何东西。我不知道为什么,可能我安装了一些软件包,弄得一团糟。我已经安装并重新安装了gcc和其他软件包,但没有好消息。还是这个问题。
这是一条信息:
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-
linux/bin/ld: /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../lib64/crt1.o: unrecognized relocation (0x29) in section `.text'
任何想法是什么意思,以及如何解决这个问题?
欢呼
3条答案
按热度按时间wnvonmuf1#
对于任何遇到此问题的人:我认为@gabib44的问题是使用旧版本的
ld
链接一个用新版本构建的库。当重定位类型大于您的
ld
版本中已知的最大重定位类型时,会出现“无法识别的重定位”。0x2a
(R_X86_64_REX_GOTPCRELX
)是当前具有最大值的重定位类型;我猜@gabib44的ld
已经足够老了,不知道之前的重定位类型(0x29
,R_X86_64_GOTPCRELX
)。当我用binutils v2.26(它知道重定位
0x2a
)构建一个库,然后使用binutils v2.24将该库合并到构建机器上时,我自己就遇到了这个问题修复方法是构建您想要链接到旧版本的binutils套件的库,或者在想要链接该库的机器上升级
ld
。mzmfm0qo2#
我在另一篇文章中找到了这个:
[......编译时会出现以下错误:
在尝试了很多东西之后,包括从不同的Gentoo系统中出现的二进制文件,我终于恢复了,并解决了问题,感谢optiz 0 r(解决了我的问题)和Ryuno-Ki[m](让我知道optiz 0 rs在我注销时的回复)。
很简单!您的问题的解决方案可能会有所不同,但运行
可能会显示您可以输入的版本,而不是我使用的版本.]通过necrophcodr »星期二2018年2月06日21:24在https://forum.sabayon.org/viewtopic.php?f=57&t=34076&p=181260#p181260
对我很有效。
mznpcxlj3#
我修复了安装gcc-32位和删除各种其他包