Assembly 无法在64位ARM(AArch64)Ubuntu上交叉组装ARM 32位汇编程序

Assembly 无法在64位ARM(AArch64)Ubuntu上交叉组装ARM 32位汇编程序,assembly,gcc,arm,raspberry-pi4,ubuntu-20.04,Assembly,Gcc,Arm,Raspberry Pi4,Ubuntu 20.04,我无法在安装在Raspberry Pi 4上的Ubuntu 20.04 64位上执行我的汇编程序 我用 arm-linux-gnueabihf-as -o testas.o testas.s arm-linux-gnueabihf-gcc -o testas testas.o 键入/testas;echo$?进入终端后会给我一个结果 bash:./testas:没有这样的文件或目录 守则的内容如下: .global main main: mov r0,#1 bx lr 是否确实键入了/te

我无法在安装在Raspberry Pi 4上的Ubuntu 20.04 64位上执行我的汇编程序

我用

arm-linux-gnueabihf-as -o testas.o testas.s
arm-linux-gnueabihf-gcc -o testas testas.o
键入
/testas;echo$?
进入终端后会给我一个结果
bash:./testas:没有这样的文件或目录

守则的内容如下:

.global main

main:
mov r0,#1
bx lr

是否确实键入了
/testas
,而不是错误消息所示的
.testas
?还要注意,程序集是组装的,而不是编译的。最后,请注意,第二个命令直接从程序集源文件生成二进制文件,无需首先生成对象文件。您是否在x86-64桌面上运行了
arm linux gnueabihf gcc
/testas
?ARM汇编代码是32位的,而不是ARM64又名AArch64,所以我想知道你所说的“64位Ubuntu”是什么意思。你的RPi上真的安装了Ubuntu 20.04吗?我得到一个类似的
/lib/ld linux.so.3:如果我试图在x86-64 Ubuntu桌面上运行
arm linux gnueabi gcc
的输出,就不会有这样的文件或目录
消息。(因为我已经安装了qemu binfmt,所以它正在尝试在其上运行qemu)。谢谢您的回答。是的,我已经在我的RPi上安装了Ubuntu 20.04。有没有办法在arm64上执行32位汇编代码?好的,这样就排除了x86错误。您可能需要安装某种gcc多库包IDK。使用
file testas
和/或
ldd testas
查看它正在查找哪些文件。或者
strace./testas
@fuz:OP改变了这一点;在看到您的评论后,我检查以确保是OP的编辑更改了我自己的评论。您确定键入了
/testas
而不是
.testas
,如错误消息所示吗?还要注意,程序集是组装的,而不是编译的。最后,请注意,第二个命令直接从程序集源文件生成二进制文件,无需首先生成对象文件。您是否在x86-64桌面上运行了
arm linux gnueabihf gcc
/testas
?ARM汇编代码是32位的,而不是ARM64又名AArch64,所以我想知道你所说的“64位Ubuntu”是什么意思。你的RPi上真的安装了Ubuntu 20.04吗?我得到一个类似的
/lib/ld linux.so.3:如果我试图在x86-64 Ubuntu桌面上运行
arm linux gnueabi gcc
的输出,就不会有这样的文件或目录
消息。(因为我已经安装了qemu binfmt,所以它正在尝试在其上运行qemu)。谢谢您的回答。是的,我已经在我的RPi上安装了Ubuntu 20.04。有没有办法在arm64上执行32位汇编代码?好的,这样就排除了x86错误。您可能需要安装某种gcc多库包IDK。使用
file testas
和/或
ldd testas
查看它正在查找哪些文件。或者
strace./testas
@fuz:OP改变了这一点;在看到你的评论后,我检查了一下,确定是OP的编辑改变了这一点,然后才做出我自己的评论。