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

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐