当前位置: 代码网 > 服务器>服务器>Linux > Linux虚拟机如何为树莓派交叉编译?环境变量配置详解

Linux虚拟机如何为树莓派交叉编译?环境变量配置详解

2026年08月26日 Linux 我要评论
交叉编译交叉编译是在一个平台上生成另一个平台的可执行代码,例如我们在windows编写的c51的代码,并编译生成在c51上可执行的xxx.hex文件,这个文件是在c51上运行的而不是在windows运

交叉编译

交叉编译是在一个平台上生成另一个平台的可执行代码,例如我们在windows编写的c51的代码,并编译生成在c51上可执行的xxx.hex文件,这个文件是在c51上运行的而不是在windows运行的。

为什么要进行交叉编译

  • 目的平台资源匮乏,缺少我们需要的编译器,导致某些文件无法编译运行。
  • 目的平台还没有建立,连操作系统都没有,因此即使树莓派有自己的操作系统(linux),当树莓派的目的平台还没有建立时一样也要进行交叉编译,因为操作系统也是代码,一样要进行编译。目的平台运行至少需要两种东西:bootloader(启动引导代码)以及操作系统核心,这也就是为什么需要交叉编译的原因

交叉编译需要的工具

  • 交叉编译器
  • 目的平台的交叉编译工具链
  • 宿主机(linux虚拟机):编辑和编译程序的平台,一般是基于x86的pc机,通常也被称为主机
  • 目标机(目的平台,树莓派):用户开发的系统,通常都是非x86平台,宿主机编译得到的可执行的代码在目标机上运行

linux虚拟机为树莓派进行交叉编译

下载交叉编译工具链(树莓派)

raspberry pi · github

  • 使用命令unzip 解压该zip压缩包

  • 进入目录配置环境变量 /tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin

配置临时有效的环境变量,仅在当前命令窗口有效

1:命令echo  $path 查看当前环境变量

2:命令export  path=??将/snap/bin替换成当前路径得到新的环境变量

3:回到工作目录测试交叉编译工具链

配置永久有效的环境变量,所有命令窗口有效

1:回到工作目录,命令sudo vi .bashrc进入隐藏文件bashrc

2:将刚刚配置临时有效的环境变量后新环境变量写入该文件

3:执行命令source .bashrc 让刚刚写入的内容生效

使用交叉编译工具链来交叉编译文件

配置好环境变量后就能在任何目录底下使用交叉编译链来编译文件了

可以看到使用gcc和交叉编译链编译的可执行文件的文件属性不一样,gcc编译的可执行文件属于x86平台,交叉编译链编译的可执行文件属于arm平台

交叉编译时链接第三方库

由于我们使用的是交叉编译链编译目的平台的可执行文件,因此当我们需要链接第三方库时,该库应该也是目的平台的第三方库,否则该交叉编译链将不认识此库,怎么使用第三方库可以看往期博文。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com