
一、交叉编译器交叉编译器是一种能够在一种计算机平台上生成另一种平台可执行代码的编译器。例如在x86架构的PC上编译出运行于ARM架构嵌入式设备的程序。与本地编译器不同交叉编译器的编译环境和运行环境是分离的。二、为什么需要交叉编译器Buildroot 采用极简设计不具备包管理功能Ubuntu支持 apt 等包管理工具Buildroot不提供 apt、yum、opkg 等任何安装工具添加软件只能在系统编译阶段集成系统部署后无法在线安装 gcc 等工具因此我们需要在电脑上的Ubuntu中下载好gcc然后将需要编译的.c文件进行编译生成可执行文件将可执行文件的文件上传给我们的开发板直接运行。接下来就是示范流程三、操作过程1、给Ubuntu安装上交叉编译器这里有两种选择一种是在线安装交叉编译器但是在线安装的话呢可能不能保证正常工作我们需要自己去修改对应的源代码除非特殊需求我们直接用第二种。第二种我们直接使用正点原子官方给我们打包的交叉编译器后面附上打包好的交叉编译器。1第一步通过finshell终端连接Ubuntu系统将交叉编译器文件上传到虚拟机的Ubuntu系统上你用其他终端也可以只要文件能传过去就可以了我们把它放在home目录下就行其他的放也行自己找个合适的地方。我就放在home目录下的ziqi用户名下了就是最下面的atk-drik3588-toolchain...文件2第二步打开终端先看一下文件是否已经传输过来传输过来后我们输入以下命令先给该文件赋予可执行权限然后执行该文件他就会显示下面的信息按下图提示操作3第三步source /opt/atk-dlrk3588-toolchain/environment-setup 运行这个条命令把交叉编译器路径加入系统环境这样子就搞定啦4第四步验证是否安装成功进入编译器所在的bin后运行aarch64-buildroot-linux-gnu-gcc -v查看能否生效。5编译.c文件我就以我自己的一个led.c为例子吧首先我们来到Ubuntu终端进入到我们.c文件存放的位置然后运行$CC -o led led.c命令你就看到一个可执行文件led啦$CC → 交叉编译器 -o → 指定输出文件名 led → 输出的程序叫 led led.c → 源代码文件是 led.c6将编译好的可执行文件led通过SSH远程传送给我们的开发板不知道怎么远程连接的看我linux专栏下关于远程联机的文章https://blog.csdn.net/2301_81056636/article/details/161059844?spm1011.2124.3001.6209scp → 我要传文件 led → 传这个叫 led 的文件 root → 用 root 账号登录 → 连接 192.168.2.115 → 开发板的地址 : → 找到了设备现在指定目录 /work/01_led/ → 把文件放这里看文件已经过来啦我们编译试试看7进入led所在目录后给我们的led加上可执行权限然后运行点亮成功