更改gcc/binutils--前缀

更改gcc/binutils--前缀,gcc,prefix,binutils,Gcc,Prefix,Binutils,有一次,我构建并安装了gcc和binutils,并将错误的前缀(--prefix=/home/../usr)传递到配置脚本 现在,我使用正确的前缀(--prefix=/usr)重新配置、重建并重新安装了gcc和binutils,但是编译总是失败: $ /bin/ld: cannot find /home/../usr/lib/libc.so.6 当然,我可以将这些库进行符号链接以使其正常工作,但我想知道这些路径保存在哪个文件中,以及如何更改它们 现在,我使用正确的前缀(--prefix=/us

有一次,我构建并安装了gcc和binutils,并将错误的前缀(
--prefix=/home/../usr
)传递到配置脚本

现在,我使用正确的前缀(
--prefix=/usr
)重新配置、重建并重新安装了gcc和binutils,但是编译总是失败:

$ /bin/ld: cannot find /home/../usr/lib/libc.so.6
当然,我可以将这些库进行符号链接以使其正常工作,但我想知道这些路径保存在哪个文件中,以及如何更改它们

现在,我使用正确的前缀(--prefix=/usr)重新配置、重建并重新安装了gcc和binutils,但是编译总是失败:

$ /bin/ld: cannot find /home/../usr/lib/libc.so.6
$/bin/ld:找不到/home/。/usr/lib/libc.so.6

您可能还没有重新构建和重新安装libc,错误就来自它

在Linux上,
libc.so
是一个链接器脚本,与此类似:

/* GNU ld script
   Use the shared library, but some functions are only in
   the static library, so try that secondarily.  */
OUTPUT_FORMAT(elf64-x86-64)
GROUP ( /lib/x86_64-linux-gnu/libc.so.6 /usr/lib/x86_64-linux-gnu/libc_nonshared.a  AS_NEEDED ( /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 ) )

我打赌你的
libc.so
中有
/home/./usr/lib/libc.so.6

你的
/etc/ld.so.conf
是怎么说的?当用
gcc-v
编译时,这是怎么说的?另外,不要忘记运行
ldconfig
我建议运行
ldd/bin/ld
;它可能在错误的地方寻找C库。在重新构建(并重新安装)之前,它很可能会继续出现在错误的位置。作为一个临时的创可贴,在“错误”的地方创建一个指向“<代码> /LIB/LIBC”的链接。因此,6 < /代码>。这很可能让它充分发挥作用,继续下去。在更换系统自己的编译工具时要非常非常小心;我从不冒险,总是在不同的目录中安装自己的版本(例如在
/usr/gnu
/usr/gcc
)。如果覆盖系统构建,请先备份。@Basile Starynkevitch:gcc-v打印正确的前缀(--prefix=/usr)。@favoretti:I没有文件/etc/ld.so.conf,只有一个空目录/etc/ld.so.conf.d/