gab*_*b44 10 c++ linux gcc opensuse ldd
我无法在我的电脑上编译任何东西.我不明白为什么,可能我已经安装了一些包,弄得一团糟.我已经卸载并重新安装了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'
Run Code Online (Sandbox Code Playgroud)
知道这是什么意思以及如何解决这个问题?
干杯
Jak*_*nar 18
对于遇到此问题的任何其他人:我认为@ 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
链接的库,要么在要链接该库的计算机上进行升级.