Rust在linux下交叉编译到arm开发板

这篇具有很好参考价值的文章主要介绍了Rust在linux下交叉编译到arm开发板。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前段时间做了rust交叉编译到arm开发板,如果引入的包有些包含OpenSSL,ring...遇见了很多问题在网上也查阅很多资料,今天抽个时间做个汇总吧。

虚拟机里面安装rust环境,做到交叉编译的时候应该都已经有了,这个地方就不过多说了,网上找一下就有的

首先描述一下我的环境吧,用的ubuntu是18.04桌面版,编译的程序放到aarch64开发板上并成功执行,话不多说直接上干货。。。

之前参考这篇文章能编译引入包比较少的程序:

rust交叉编译

1.首先在虚拟机上安装docker镜像(docker没有安装之前之前编译的程序(包含openssl,ring等一系列包)一直编译不成功。这里附个链接是docker安装的官方教程

ubuntu安装docker

顺便把安装指令直接在这个地方写出来,方便参考


1.卸载老版本,如果想卸载老版本docker可以执行,如果新安装跳过这步跳过即可
sudo apt-get remove docker docker-engine docker.io containerd runc

2.更新apt包,
sudo apt-get update

sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

3.添加docker密匙
sudo mkdir -m 0755 -p /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

4.设置存储库
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

5.下载docker前更新一下apt
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

6.运行hello word镜像验证是否成功安装docker
sudo docker run hello-world
arm rust,rust交叉编译,arm开发,rust,linux,ubuntu,嵌入式硬件,Powered by 金山文档

返回这个说明docker已经成功安装

2.第一步终于结束了,接下来就是按照rust环境需要用到的cross,用这个指令来实现文件的交叉编译,官方cross包介绍

rust --cross这个里面有介绍cross包的环境和作用可以去看一下,

另外一个配置cross环境变量参考的这个文章:

linux配置环境变量

下面我把这两部分指令放到这个地方方便参考:


安装cross
cargo install cross --git https://github.com/cross-rs/cross

ubuntu配置环境变量
cd ~/.cargo/bin
这个路径需要和下面写入的一致
echo $PATH
arm rust,rust交叉编译,arm开发,rust,linux,ubuntu,嵌入式硬件,Powered by 金山文档

nano ~/.bashrc
然后插入这段,ctrl+x保存并退出(这个路径就是上面echo $PATH后的路径)
export PATH=/root/.cargo/bin:$PATH
arm rust,rust交叉编译,arm开发,rust,linux,ubuntu,嵌入式硬件,Powered by 金山文档

修改完后需要source一下:source ~/.bashrc

验证一下是否成功安装cross:

ls ~/.cargo/bin

查看cross版本:cross --verison

arm rust,rust交叉编译,arm开发,rust,linux,ubuntu,嵌入式硬件,Powered by 金山文档

这个地方加上一部分rust相关的配置,防止后面编译不了


sudo apt update

sudo apt install rustc

rustc –V

curl https://sh.rustup.rs -sSf | sh

source "$HOME/.cargo/env“

rustc –V

到这一步基本上就大功告成了,还剩一点就能编译rust程序到板子上运行了

安装linux里面交叉编译工具链,cross包文档里面用的gun,但是我用gun一直编译不成功,最后用了musl成功了,把这两个都列出来了


apt-get install gcc-aarch64-linux-gnu
apt-get install gcc-aarch64-linux-musl
rustup target add aarch64-unknown-linux-gnu
rustup target add aarch64-unknown-linux-musl

安装成功后,执行这条命令就能生成目标文件了,大功告成~!

cross build --target aarch64-unknown-linux-musl

如果编译不成功,引入的reqwest有OpenSSL错误,可以在toml文件里面修改一下这个包,

reqwest = { version = "0.11", features = ["json","blocking","rustls-tls"], default-features=false }

如果碰到虚拟机没有网络了可以执行这条命令试一下:sudo dhclient ens33

第一次发文章,有不足的地方请大家指出。文章来源地址https://www.toymoban.com/news/detail-617633.html

到了这里,关于Rust在linux下交叉编译到arm开发板的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu 22.04 搭建arm-linux-gcc交叉编译环境

    如果使用的是64位的Ubuntu系统,建议直接安装64位的arm-linux-gcc交叉编译器 下载地址: https://pan.baidu.com/s/14-lQpsXuEyCcHNHcTXcOyA 提取码: 55at 0. 注意在终端进行粘贴的操作为【Ctrl+shift+v】!! 把下载好的安装包移动到根目录下的tmp目录中(/tmp):在【其他位置】中的【计算机】中找

    2024年02月05日
    浏览(55)
  • ubuntu交叉编译Opencv-4.2及contrib库并移植ARM开发板

             前言:本文介绍在ubuntu-18.04上交叉编译Opencv-4.2.0,交叉编译工具版本是arm-linux-4.9.0。 安装cmake和cmake-gui: $ sudo apt-get install cmake $ sudo apt-get install cmake-qt-gui 安装依赖库: $ sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libtiff5-dev libswscale-

    2024年02月14日
    浏览(29)
  • 交叉编译工具链arm-linux-gnueabihf的安装-ubuntu 20.04

    http://t.csdn.cn/ZbjFX 建议直接在.bashrc文件作修改 ,修改方式相同 ( vi :视自己的编辑器而定) 因为我在修改profile文件后,环境变量生效,但是命令行的用户名等颜色高亮显示会消失;并且重启终端后,又需要再source一下profile。 但是将环境变量添加至.bashrc则不会出现这两个问题

    2024年02月11日
    浏览(33)
  • 有关 Rust 交叉编译的一些思路 (仅供参考)

    近来, 使用 Rust 语言开发的应用程序, 渐渐融入了开发者以及普通用户的日常生活. 它们不仅出现在我们常用的工作平台上, 不少嵌入式设备或者云服务器上也多见它们的身影. Rust 是一种需要编译的语言, 且一些 crate 仍需要 C/C++ 的构建环境. 大多数时候, 在 Rust 工具链 (toolchai

    2024年02月09日
    浏览(30)
  • Ubuntu嵌入式开发编译工具链安装教程之Arm GNU Toolchain

    下载路径: Downloads | GNU Arm Embedded Toolchain Downloads – Arm Developer 官方提供了可执行版本和源文件版本(后缀为*src_tar.bz2 ),通常情况我们直接下载可执行版本就足够了,当然致力于编译工具链原理学习的小伙伴对源文件版本是必不可少的,本文仅限可执行版本安装教程,若有

    2024年02月13日
    浏览(33)
  • [linux]Ubuntu 18.04安装arm-linux-gcc交叉编译器的两种方法

    第一种:apt安装法: Ctrl+Alt+T弹出终端,使用如下命令进行arm-linux-gcc的安装:   使用如下命令进行arm-linux-g++的安装:   如果要卸载时使用如下命令进行移除,arm-linux-gcc的卸载:   arm-linux-g++的卸载:  第二种源码安装: 目前网上搜索发现,最多人安装的是4.4.3版本的

    2024年02月05日
    浏览(40)
  • 【Linux下6818开发板(ARM)】SecureCRT串口和交叉编译工具(巨细版!)

    (꒪ꇴ꒪ ),hello我是 祐言 博客主页:C语言基础,Linux基础,软件配置领域博主🌍 快上🚘,一起学习! 送给读者的一句鸡汤🤔: 集中起来的意志可以击穿顽石! 作者水平很有限,如果发现错误,可在评论区指正,感谢🙏 1.串口工具          SecureCRT         SecureCRT是一款功

    2024年02月15日
    浏览(30)
  • 在linux中进行arm交叉编译体验tiny6410裸机程序开发流程

    在某鱼上找了一个友善之臂的Tiny6410开发板用来体验一下嵌入式开发。这次先体验一下裸机程序的开发流程,由于这个开发板比较老旧了,官方文档有很多过期的内容,所以记录一下整个过程。 按照光盘A中的文档《04- Tiny6410 Linux开发指南.pdf》的 1.3.5 节描述,用光盘中的 a

    2024年02月15日
    浏览(26)
  • openssl交叉编译 (ubuntu+arm)

    1.下载安装包  wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz 2.解压安装包 tar -zxvf openssl-1.1.1l.tar.gz 3.进入源码文件夹-修改编译器 CC=arm-linux-gnueabihf-gcc 4.配置编译参数 ./config no-asm -shared --prefix=/home/alientek/sp_test/openssl/sp_install 1)no-asm在交叉编译过程中不使用汇编代码代码加速编译

    2024年02月05日
    浏览(33)
  • 在Ubuntu上进行ARM交叉编译

    ARM架构是一种广泛应用于嵌入式系统和移动设备的处理器架构。如果您需要在x86架构的Ubuntu系统上开发或编译适用于ARM架构的应用程序,您需要进行ARM交叉编译。本篇文章将介绍如何在Ubuntu上进行ARM交叉编译,并提供相应的源代码示例。 步骤1:安装交叉编译工具链 首先,您

    2024年02月22日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包