qemu user-space emulation

在使用 qemu 进行用户态模拟 aarch64 或其他平台的程序时,如果程序是动态链接的,会遇到下面两个错误。

/lib/ld-linux-aarch64.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_64_aarch64-linux-gnu/aarch64-linux-gnu/libc/lib/ 中。找到缺少的 so 文件,拷贝到 /lib 下即可。sysroot 目录可以通过下面的命令获取 aarch64-linux-gnu-gcc -print-sysroot
  • 程序构建的时候采用静态链接。构建命令加上参数 -static
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐