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

树莓派之旅-在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.kler.cn/a/464595.html

相关文章:

  • 若依修改超级管理员admin的密码
  • 【TCP】SYN、ACK、FIN、RST、PSH、URG的全称
  • matlab时频分析库
  • 【MongoDB详解】
  • RocketMQ面试题:进阶部分
  • 解决uniapp H5页面限制输入框只能输数字问题
  • 戴尔/Dell 电脑按什么快捷键可以进入 Bios 设置界面?
  • pyspark执行group by操作
  • df.drop()
  • 【剪映绿化版】剪映免费绿色版,全部功能可用
  • Centos7中安装X11vnc
  • 基于 GPUTasker 的 GPU 使用情况钉钉推送机器人实现
  • 基于Springboot + vue实现的校园周边美食探索及分享平台
  • scrapy 教程
  • 【论文+源码】基于Spring和Spring MVC的汉服文化宣传网站
  • Excel 身份证号计算年龄
  • super_vlan
  • 基于springboot的社区维修平台
  • 【Go学习】-01-2-常见类型及关键字
  • 我的线代观-秩(向量,矩阵)
  • 船用能源管理系统:绿色航运的未来之匙
  • 计算机网络•自顶向下方法:OSPF、BGP与ICMP协议
  • 刷服务器固件
  • 常见的游戏网站大全
  • MySQL-InnoDB数据存储结构
  • 将一个变量声明为全局变量比如:flag1=false;然后通过jQuery使用js一个方法,将它设置为不可修改