【发布时间】:2021-07-04 14:57:06
【问题描述】:
我在 debian 的/root/tools/ 中安装了一个新的 glibc,它已经预装了 glibc。为了测试新的 glibc,我输入:
gcc test.c -Wl,-rpath=/root/tools/lib -Wl,--dynamic-linker=/root/tools/lib/ld-linux-x86-64.so.2
产生a.out,然后输入:
ldd a.out
它显示
linux-vdso.so.1 (0x00007ffd1018c000)
libc.so.6 => /root/tools/lib/libc.so.6 (0x00007fc7f468b000)
/root/tools/lib/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 (0x00007fc7f4855000)
但是输入 ls -l /root/tools/lib/ld-linux-x86-64.so.2 ,
它显示/root/tools/lib/ld-linux-x86-64.so.2 -> ld-2.33.so
为什么新 glibc 中的 ld.so 与 /lib64 中的 ld.so 链接?这要怎么解释?
【问题讨论】:
-
新的 glibc 是使用来自系统 binutils / 系统 glibc 的链接器构建的。 ...我想如果你想要一个新的独立工具链,你将不得不像“Linux From Scratch”那样做→linuxfromscratch.org/lfs/view/stable