Linux入门篇之RK3588基于Buildroot系统下安装交叉编译器
一、交叉编译器
交叉编译器是一种能够在一种计算机平台上生成另一种平台可执行代码的编译器。例如,在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.c(6)将编译好的可执行文件led通过SSH远程传送给我们的开发板(不知道怎么远程连接的看我linux专栏下关于远程联机的文章)https://blog.csdn.net/2301_81056636/article/details/161059844?spm=1011.2124.3001.6209
scp → 我要传文件 led → 传这个叫 led 的文件 root → 用 root 账号登录 @ → 连接 192.168.2.115 → 开发板的地址 : → 找到了设备!现在指定目录 /work/01_led/ → 把文件放这里看,文件已经过来啦!!!我们编译试试看
(7)进入led所在目录后,给我们的led加上可执行权限,然后运行
点亮成功!
