无法在qemu或gem5中打开/lib/ld-linux-aarch64.so.1

问题描述

我正在尝试在台式计算机上模拟一个简单的Hello world ARM示例。我尝试了qemu和gem5。两者都给出了类似的错误。他们找不到ld-linux-aarch64.so.1。其实我也找不到。如果可以找到它,我将用-L(在qemu中)或--redirects(在gem5中)显示

文件为:

armhello: ELF 64-bit LSB shared object,ARM aarch64,version 1 (SYSV),dynamically linked,interpreter /lib/ld-linux-aarch64.so.1,BuildID[sha1]=23a21b7a545ac510923b6b3713d2bbee092f820a,for GNU/Linux 3.7.0,not stripped

它的编译与:aarch64-linux-gnu-gcc

我正在尝试使用以下命令在qemu中运行它:

qemu-aarch64 armhello

我收到此错误

/lib/ld-linux-aarch64.so.1: No such file or directory

我尝试在gem5中使用以下命令运行它:(simpleARM.py指向我的可执行文件(名为armhello))

build/ARM/gem5.opt configs/tutorial/simpleARM.py

我收到此错误

panic: panic condition fd < 0 occurred: Failed to open file /lib/ld-linux-aarch64.so.1.

我该如何解决

注意:我知道编译--static时它可以工作。但是我需要运行动态链接的更复杂的二进制文件,并且无法更改它们。这只是一个例子。

解决方法

对于gem5,您可以使用--redirects--interp-dirHow to run a dynamically linked executable syscall emulation mode se.py in gem5?

对于qemu,您需要-LUsing dynamic linker with qemu-arm