交叉编译程序,在armv7l架构的开发板上运行

张开发
2026/4/9 13:17:15 15 分钟阅读

分享文章

交叉编译程序,在armv7l架构的开发板上运行
手头有块开发板需要基于它做二次开发。开发板是ARM架构的CPU当前跑的Linux内核是4.X。想在安装在virtualbox上的Linux安装的是kali Linux上开发程序然后交叉编译后上传到开发板上。一、确定开发板的架构1. 用uname命令确定架构uname -m 返回 armv7l根据armv7l确定架构2. 用 getconf LONG_BIT 命令查询是32位还是64位系统返回32说明是32位系统返回64说明是64位系统。当前开发板返回的是32位系统。二、安装交叉gcc执行命令 sudo apt search gcc-arm 看有那些针对32位 arm架构gcc有那些结果如下gcc-arm-linux-gnueabi/kali-rolling 4:15.2.0-4 amd64GNU C compiler for the armel architecturegcc-arm-linux-gnueabihf/kali-rolling,now 4:15.2.0-5 amd64 [installed]GNU C compiler for the armhf architecturegcc-arm-none-eabi/kali-rolling 15:14.2.rel1-1 amd64GCC cross compiler for ARM Cortex-R/M processors这些安装中间这一个gcc。第一个是没针对浮点运算进行优化的第三个是针对裸机开发的。三、编译运行建个简单的C语言文件 hello-arm-static.c 测试内容如下#include stdio.hvoid main() {printf(“Hello arm \n”);}arm-linux-gnueabihf-gcc-statichello-arm-static.c -o hello-arm-static注意加编译成静态文件的参数 -static不然会有以下错误/lib/libc.so.6: version GLIBC_2.34’ not found (required by ./hello-arm-32)因为开发板上没有安装glibc包。

更多文章