只是上面的一个补充,澄清了是否有任何身体面临同样的问题..正如我刚才看到的上述问题..
如果您使用静态编译busybox.那么无需担心共享库.但是如果你动态编译繁忙的框,那么你的工具链在rootfs中起着重要的作用.在这里,您需要将工具链库复制到rootfs / lib文件夹.
什么是需要复制的库只需键入以下命令即可知道.
strings _install / bin / busybox | grep ^ lib
显示应保存在rootfs的/ lib中的列表库.
这个命令说:“从文件中获取所有字符串,只显示以lib开头的行.”程序ldd不能使用,因为程序已经交叉编译,不能在开发主机上运行.应从工具链的sysroot目录中获取这些文件.大多数现代工具链都配置了sysroot,这是一个目录,其中包含工具链中可能出现在工具链所针对的系统的根文件系统中的文件.要检查您的工具链是否具有sysroot支持,请尝试以下操作:
$arm-linux-gcc -print-sysroot
/ arm-unknown-linux-gnueabi / bin / arm-linux-gcc如果这是一个有效的路径,那么应该从中复制文件.如果没有显示路径,请使用find查找sysroot目录,或使用find查找libc.so:
$find. -name libc.so找到libc和libm后,创建(你的rootfs)/ lib目录并将其复制到那里.这些文件可能是其他文件的符号链接,因此请务必将它们全部收集起来.下一个要获取的文件是动态加载程序,通常称为ld-linux-,它也与libc.so. *一起驻留在lib目录中.将其复制到/ lib目录.您的系统现在拥有所有共享库和加载器,因此BusyBox可以运行