[英]/lib64/ld-linux-x86-64.so.2: No such file or directory error
[英]Why does ld need /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 while its default dynamic linker is /lib64/ld-linux-x86-64.so.2?
在 x86-64 目标 Debian 中,大多数程序都通过/lib64/ld-linux-x86-64.so.2
链接到共享对象。 在/lib/x86_64-linux-gnu/
也有一个,所以我删除了它,因为我认为它没有必要:
rm /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
然后测试:
gcc test.c
它显示如下:
/usr/bin/ld: cannot find /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 inside /
collect2: error: ld returned 1 exit status
那么,为什么ld
需要找到/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
而默认动态链接器是/lib64/ld-linux-x86-64.so.2
时链接?
/lib64/ 是 /usr/lib64/ 的符号链接。
cd /lib64/ && ls -l ld-linux-x86-64.so.2
lrwxrwxrwx 1 root .. ld-linux-x86-64.so.2 -> /lib/x86_64-linux-gnu/ld-2.28.so
cd /usr/lib/x86_64-linux-gnu/
ls -l ld-linux-x86-64.so.2
lrwxrwxrwx 1 root .. ld-linux-x86-64.so.2 -> ld-2.28.so
链接器ld-2.28.so的主要链接是/usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
:不要更改它。 (/lib64/ 和 /usr/lib64/ 中的链接是出于与某些软件的兼容性原因。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.