qemu user-space emulation
在使用 qemu 进行用户态模拟 aarch 或其他平台的程序时,如果程序是动态链接的,会遇到下面两个错误。
/lib/ld-linux-aarch.so.1: No such file or directory
error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
提示找不到相应的动态链接库。
解决办法
- 缺少的库实际上在交叉编译工具链的目录中。例如
gcc-linaro-7.2.1-2017.11-x86__aarch-linux-gnu/aarch-linux-gnu/libc/lib/ 中。找到缺少的 so 文件,拷贝到 /lib 下即可。sysroot 目录可以通过下面的命令获取 aarch-linux-gnu-gcc -print-sysroot。 - 程序构建的时候采用静态链接。构建命令加上参数
-static。