我已经编写了一个简单的Hello world程序,并使用gcc-arm-linux-gnueabi编译器进行了编译。它编译得很好,但是当我尝试在ARM机器上执行它时,它报错说"没有这个文件或目录"。
我认为gcc-arm-linux-gnueabi只适用于嵌入式Linux,因为它带有嵌入式ABI。它与ARM Linux ABI有什么不同吗?
请帮助我解决这个问题。
代码在这里。
编译为
当我在目标ARM机器上执行这个交叉编译时,出现了“crosscomp no such file or dir”的错误。
编辑: 当我使用arm-linux-gnueabi-gcc时,入口点与目标机器的入口点不匹配(readelf -l crosscom),但是当我使用aarch64-linux-gnu-gcc编译时,入口点与目标机器匹配。但现在出现了"./crosscomp"的权限被拒绝的错误。我尝试使用sudo,但显示crosscomp:没有这个命令。
请帮助我解决这个问题。
代码在这里。
#include "stdio.h"
int main(void) {
printf("Hello world !\n");
return 0;
}
编译为
> arm-linux-gnueabi-gcc -Wall -o crosscomp hello.c
当我在目标ARM机器上执行这个交叉编译时,出现了“crosscomp no such file or dir”的错误。
编辑: 当我使用arm-linux-gnueabi-gcc时,入口点与目标机器的入口点不匹配(readelf -l crosscom),但是当我使用aarch64-linux-gnu-gcc编译时,入口点与目标机器匹配。但现在出现了"./crosscomp"的权限被拒绝的错误。我尝试使用sudo,但显示crosscomp:没有这个命令。
crosscomp
并且已经确认.
在你的 PATH 中? - JonBraveldd crosscomp
和strace crosscomp
,也许还会尝试将printf
注释掉,看看它的行为如何。 - JonBrave