让Linux的
核心问题:根
目录冲突(ld-linux.so
位置)
通过寻找共享库的过程中,我们知道,
连接ld-linux.so位置写的
程序,那么我们如何确定链接器写的
路径 程序编译时,GCC和binutils查找头
文件和共享库的C++库,和连接器也在编译过程中
发现的。至于GCC编译
工具,我不知道这
工作,但GCC和binutils必须依靠相同的C库,和相同的C库
搜索,所以没有必要去想它。但是要知道,他们正在寻找C库。
问题的出现
因为我们使Linux是
系统中源代码中的一个文件夹,但也指向了链接器的
目标系统,我们编译了C程序的程序,这导致路径链接是由包含目标
系统文件夹的程序编写的,但这不是真的。
例如,我们认为 / mylinux作为生产系统的根目录,首先编译/ mylinux文件夹的glibc,然后
调整工具链在 / mylinux glibc,然后编译程序将指向 / mylinux glibc。
但在系统中的程序连接成 / / / ld-linux.so.x.so mylinux库时,我们把系统 / mylinux分区中,当它开始的时候,因为没有mylinux / / / lib LD Linux。所以。X环节,所有的程序不能
运行,因为他们找不到共享库。
如果你编译LFS,然后你做的工具是为 / mylinux上面的相同,以及程序的链接是 / / / ld-linux.so.2.you工具库可以用ldd
命令看到它。
这个问题可以归结为链接器的写入路径相对于根目录,而我们构建的系统不能占用根目录,导致链接器的位置和位置不一致。