Gcc 对chroot使用ldd

Gcc 对chroot使用ldd,gcc,chroot,ldd,Gcc,Chroot,Ldd,我在sdb上创建了非常小的chroot环境,并将其安装在/mnt/sdb上。我还创建了一个指向/usr/bin/gcc的符号链接/mnt/sdb/bin/cc 返回的ldd/mnt/sdb/bin/cc 因此,我通过运行以下命令复制了必要的库: cp /lib/i686/cmov/libc.so.6 /mnt/sdb/lib/i686/cmov/libc.so.6 cp /lib/ld-linux.so.2 /mnt/sdb/lib/ld-linux.so.2 浏览这篇文章,我发现既然Li

我在sdb上创建了非常小的chroot环境,并将其安装在/mnt/sdb上。我还创建了一个指向/usr/bin/gcc的符号链接/mnt/sdb/bin/cc

返回的ldd/mnt/sdb/bin/cc

因此,我通过运行以下命令复制了必要的库:

 cp /lib/i686/cmov/libc.so.6 /mnt/sdb/lib/i686/cmov/libc.so.6
 cp /lib/ld-linux.so.2 /mnt/sdb/lib/ld-linux.so.2
浏览这篇文章,我发现既然LinuxGate.so.1是内核的一部分,我就不需要复制它了

但是,在运行chroot/mnt/sdb/bin/sh之后,请尝试cc-I-get

为什么ldd不能告诉cc需要libm呢?有没有一种简单的方法可以让cc在chrooted环境中工作,而不需要简单地复制所有库?我只是想暂时使用cc,这样我就可以用它来构建tcc,然后用tcc来构建其他所有东西。我也尝试过在外部构建tcc,然后在chroot中使用它,但我担心这可能值得发布自己的帖子

注:

我在Virtualbox中使用Debian,目前在chroot环境中运行的唯一程序是一个静态busybox二进制文件

 cp /lib/i686/cmov/libc.so.6 /mnt/sdb/lib/i686/cmov/libc.so.6
 cp /lib/ld-linux.so.2 /mnt/sdb/lib/ld-linux.so.2
cc: error while loading shared libraries: libm.so.6: cannot open shared object file: No such file or directory