我正在尝试在我的台式计算机上模拟一个简单的 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
Run Code Online (Sandbox Code Playgroud)
它是用以下内容编译的:aarch64-linux-gnu-gcc
我正在尝试在 qemu 中运行它:
qemu-aarch64 armhello
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
/lib/ld-linux-aarch64.so.1: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我尝试在 gem5 中运行它:(simpleARM.py 指向我的可执行文件(名为armhello))
build/ARM/gem5.opt configs/tutorial/simpleARM.py
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
panic: panic condition fd < 0 occurred: Failed to open file /lib/ld-linux-aarch64.so.1.
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
注意:我知道它在编译时有效--static。但我需要运行动态链接的更复杂的二进制文件,并且我无法更改它们。这只是一个例子。
对于gem5,您可以使用--redirects和--interp-dir:How to run adynamic linkedexecutivesyscall emulation mode se.py in gem5?
对于 qemu,您需要-L:使用带有 qemu-arm 的动态链接器
| 归档时间: |
|
| 查看次数: |
27300 次 |
| 最近记录: |