当前位置: 首页 > news >正文

树莓派之旅-在wsl-x86-64 上进行树莓派的交叉编译

前情提要:

想把自己花里胡哨的终端丢到树莓派上去,可是树莓派算力不够,编译时间过于漫长
在这里插入图片描述

交叉编译

定义网上有,懒得复制了,大概就是在本机电脑上编译目标平台的可执行文件
这里的目标平台是树莓派 使用 uname -m 可以发现其平台为armv7
在这里插入图片描述

编译环境的配置
编译器的选择

观察rustc 的target 我们通常有两个选择(gnu 和 musl),由于gnu偏向动态库,musl偏向静态库,于是我选择musl编译器

编译器的下载

综上所述,我选择armv7l-linux-musleabihf 作为编译目标
下载链接 https://musl.cc/armv7l-linux-musleabihf-cross.tgz
使用 tar zxvf armv7l-linux-musleabihf-cross.tgz -C ./musl-cc 解压到文件夹

rust工具链的指定

rust可以方便的添加工具链
执行 rustup target add armv7-unknown-linux-gnueabihf 安装armv7l-linux-musleabihf工具链
现在万事俱备

编译流程
设置环境变量

在下载完编译器后,将其添加到环境变量中 路径按照自己的来
export PATH=$PWD//musl-cc/bin:$PATH

进行交叉编译

执行命令 RUSTFLAGS="-C linker=armv7l-linux-musleabihf-ld" CC=armv7l-linux-musleabihf-gcc CXX=armv7l-linux-musleabihf-g++ cargo install --target armv7-unknown-linux-musleabihf starship --root ./starship --locked
该命令指定C编译器为刚才下载的armv7l-linux-musleabihf-gcc,CXX编译器为armv7l-linux-musleabihf-g++,链接器为armv7l-linux-musleabihf-ld
编译产物位于当前目录下的./starship/bin中,利用scp拷贝至树莓派

最后按照starship的文档进行配置
编译完成
在这里插入图片描述

http://www.lryc.cn/news/514132.html

相关文章:

  • nature reviews genetics | 需要更多的针对不同种族的癌症基因组图谱研究,促进精准治疗和维护治疗公平权益
  • 代码随想录算法训练营day18
  • Kafka安全优化文档:漏洞修复到安全加固
  • Markdown如何添加任务列表-复选框的添加
  • 基于下垂控制的构网变换器功率控制【微电网变流器】【Simulink】
  • AI定义汽车/跨域融合/整车智能,汽车智能化2.0时代新机会来了
  • (leetcode算法题)10. 正则表达式匹配
  • SpringCloudAlibaba实战入门之Sentinel服务降级和服务熔断(十五)
  • 使用爬虫技术获取网页中的半结构化数据
  • 2025/1/1 路由期末复习作业二
  • OpenCV-Python实战(13)——图像轮廓
  • javascript变量
  • 在K8S中,如何查看kubelet组件的日志?
  • android studio android sdk下载地址
  • Fetch处理大模型流式数据请求与解析
  • FPGA自学之路:到底有多崎岖?
  • 从0到机器视觉工程师(二):封装调用静态库和动态库
  • [极客大挑战 2019]Knife1
  • 【在Python中生成随机字符串】
  • 【three.js】场景搭建
  • Singleton: WebRTC中ThreadManager中的单例模式
  • MySQL数据库笔记——多版本并发控制MVCC
  • 【0x0037】HCI_Write_Link_Supervision_Timeout命令详解
  • Linux下如何进行内存泄漏分析
  • Colyseus Metadata 详解
  • C语言day5:shell脚本
  • 微记录-Linux字符设备的write函数如何避免文件系统重复调用?
  • 本地调试自定义Maven Plugin步骤
  • 二、github基础
  • 如何在 Vue 2 中使用 Swiper 5.4.5 处理静态与后端数据不能切换问题