linux arm 无法执行二进制文件,qemu-arm无法运行arm编译的二进制文件

我使用qemu,qemu-user和安装的gnueabi工具链运行Linux Mint 14。我用arm-linux-gnueabi-gcc test.c -o test编译了test.c。qemu-arm无法运行arm编译的二进制文件

当我尝试运行qemu-arm /usr/arm-linux-gnueabi/lib/ld-linux.so.3 test

我得到一个错误说:test: error while loading shared libraries: test: cannot open shared object file: No such file or directory。运行qemu-arm test,正如我以前的尝试,给出/lib/ld-linux.so.3: No such file or directory

但是,该文件确实存在,并且可以访问。

$ stat /usr/arm-linux-gnueabi/lib/ld-linux.so.3

File: `/usr/arm-linux-gnueabi/lib/ld-linux.so.3' -> `ld-2.15.so'

Size: 10 Blocks: 0 IO Block: 4096 symbolic link

Device: 801h/2049d Inode: 4083308 Links: 1

Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)

Access: 2013-04-22 16:19:48.090613901 -0700

Modify: 2012-09-21 08:31:29.000000000 -0700

Change: 2013-04-22 15:58:41.042542851 -0700

Birth: -

有谁知道我怎样才能使QEMU运行的ARM程序,而不必效仿的整个手臂的Linux内核?

test.c的是

#include

int main() {

printf("this had better work\n");

}

和file test是

test: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.31, BuildID[sha1]=0xf2e49db65394b77c77ee5b65b83c0cc9220cbfc0, not stripped

2013-04-23

David

+4

如果在没有OS的情况下运行,printf是你想要做的最后一件事,当然不是你想为该系统编写的第一个程序。打开一个在qemu上没有意义的led,但是将一个字符从串行端口/ uart干扰到串行终端通常是不重要的。你也想从一个汇编程序开始,而不是C,因为你必须确保你了解内存映射,程序加载的地方等等,引导代码也不是微不足道的。 –

2013-04-23 17:01:52

+0

这来自未安装arm库作为系统库(即使它们被安装为交叉编译器的目标库)。如果发行版支持它,那么可以将arm安装为多目标目标(如同时支持x86和x86_64)。在Ubuntu中,这就像'apt-add-architecture arm && apt-get install libc6:arm'。我不知道薄荷。如果你不想去考虑它,只需用'-static'编译。 –

2017-09-15 21:00:08

QEMU是一个开源的虚拟机监视器和模拟器,可以用于模拟多种硬件平台,包括ARM。以下是使用300字回答如何编译和安装QEMU用于ARM模拟的步骤: 首先,需要下载QEMU的源代码。可以从官方网站或Git仓库获取最新版本的源代码。 接下来,需要确保系统上安装了必要的编译工具和依赖项。这些依赖项包括GCC编译器、make工具和C库等。可以使用包管理器来安装它们,例如在Debian或Ubuntu上可以使用apt-get命令。 然后,进入QEMU源代码目录,开始进行配置和编译。可以使用以下命令进行配置: $ ./configure --target-list=arm-softmmu --prefix=/usr/local 这将配置QEMU来模拟ARM处理器,并将安装目录设定为/usr/local。 完成配置后,可以使用以下命令开始编译和安装QEMU: $ make $ sudo make install 这将对QEMU进行编译,并将其安装在指定的目录中。可能需要等待一段时间,具体时间取决于系统的性能和网络连接速度。 编译和安装完成后,可以通过运行以下命令来验证QEMU是否正常工作: $ qemu-system-arm --version 如果成功安装,应该会显示QEMU的版本信息。 现在,您可以使用QEMU来模拟ARM处理器并运行ARM二进制文件。例如,可以使用以下命令来运行一个ARM可执行文件: $ qemu-system-arm -cpu cortex-a53 -machine virt -nographic -kernel path/to/kernel.img 以上是在300字中回答如何编译和安装QEMU用于ARM模拟的简要步骤。实际过程可能因系统环境和配置而有所不同,建议查阅QEMU的官方文档以获取更详细的指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值