ubuntu 终端:
# 在主机上执行如下命令 sudo apt install gcc-arm-linux-gnueabihf # 安装完成后使用如下命令查看版本 arm-linux-gnueabihf-gcc -v
#include <stdio.h> int main(int argc, char *argv[]) { int i; printf("Hello World http://chanpinxue.cn \n"); printf("jiang zhi hao \n"); return 0; }
# 以下命令在主机上运行 # 在 hello.c 程序所在的目录执行如下命令 arm-linux-gnueabihf-gcc hello.c -o hello arm-linux-gnueabihf-gcc hello.c -o hello_static --static
# 执行主机编译的 x86 架构程序 ./hello
bash: ./hello: cannot execute binary file: Exec format error
如图所示,程序无法正常运行,终端提示 x86 架构(Intel 或 amd) 执行 arm 工具链编译 的 hello程序时提示格式错误,原因是 x86_64 和 arm 架构的程序不兼容,本质是由于这些 cpu 使用的指令集不同。
开发板中执行生成的 hello_static 静态程序 ./hello_static