2024 Rust现代实用教程:1.1Rust简介与安装更新

06-01 1463阅读

文章目录

  • 一、Rust安装
  • 二、更新Rust
  • 三、Rust的Stable与Nightly版本
  • 四、卸载ubuntu安装的cargo和rustup
  • 五、rust安装以及加速源配置
  • 六、rust交叉编译工具链说明
    • rustup稳定版交叉编译步骤
      • 步骤 1:安装目标组件
      • 步骤 2:安装交叉编译工具链
      • 步骤 3:配置环境变量
        • 配置 CARGO_TARGET__LINKER
        • 步骤 4:指定目标架构进行构建
        • 调试技巧
        • 参考

          一、Rust安装

          link:https://www.rust-lang.org/zh-CN/tools/install

          Windows 的 Linux 子系统(WSL)

          curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
          

          参考:

          • RUST安装慢怎么办,使用镜像方式安装

            设置环境变量

            设置环境变量 RUSTUP_DIST_SERVER (用于更新 toolchain):
            export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
            RUSTUP_UPDATE_ROOT (用于更新 rustup):
            export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
            

            下载镜像安装脚本

            wget https://cdn.jsdelivr.net/gh/rust-lang-nursery/rustup.rs/rustup-init.sh
            

            执行安装脚本

            sh rustup-init.sh
            

            1 使用默认配置,2 使用自定义配置,3 取消安装

            这里我们选择默认配置输入 1

            配置cargo的环境变量

            source $HOME/.cargo/env
            

            测试一下安装结果

            输入cargo ,按两下 tab键,进行命令补全提示,可以看到命令已经出来了

            2024 Rust现代实用教程:1.1Rust简介与安装更新

            好了,rust环境已经安装成功了!

            安装注意事项

            (1)如果使用了上述方法安装,就不要使用ubuntu apt的方式进行安装。如果安装了,请卸载

            sudo apt remove cargo rustc

            sudo apt autoremove

            sudo apt clean

            (2)“/usr/lib/rustlug/src/rust/library/Cargo.lock” does not exist, unable to build with the standard library, try: rustup conponent add rust-src --toolchain nightly-x86_64-unknown0linux-gnu

            2024 Rust现代实用教程:1.1Rust简介与安装更新

            如果执行component还是出现以上问题,很大原因是是因为使用了apt方式安装的rust与脚本安装的rust冲突了。一定要删除所有apt源安装的rust工具。

            保证所有工具都是脚本安装的

             which rustc

            /home/wangji/.cargo/bin/rustc

             which rustup

            /home/wangji/.cargo/bin/rustup

             which cargo

            /home/wangji/.cargo/bin/cargo

            二、更新Rust

            更新rust

            $ rustup update
            

            卸载Rust

            rustup  self uninstall
            

            添加组件

            rustup component add rustfmt
            

            查看版本

            rustup --version
            

            三、Rust的Stable与Nightly版本

            ·1.Stable:这是最稳定和可靠的版本,适用于大多数生产环境的应用程序。Rust的稳定版经过了广泛测试和验证,确保了向后兼容性,这意味着你编写的代码在未来的稳定版本中仍然可以运行。

            ·2.Nightly:这是每天构建的最新版本,包含最新的功能和实验性质的特性。夜版是Rust的开发版本,通常包含最新的语言特性和实验性质的改进,但也可能包含一些不稳定的内容。因此,它不适用于生产环境,但可以用于尝试最新的语言功能或为Rust的发展做贡献。

            安装:rustup install stable/nightly,nightly是一些新的特性

            切换:rustup default stable/nightly

            查看rust版本

            ▶ rustup show
            Default host: x86_64-unknown-linux-gnu
            rustup home:  /home/wangji/.rustup
            stable-x86_64-unknown-linux-gnu (default)
            rustc 1.82.0 (f6e511eec 2024-10-15)
            

            安装nightly版本

            ▶ rustup default nightly
            ▶ rustup show
            Default host: x86_64-unknown-linux-gnu
            rustup home:  /home/wangji/.rustup
            installed toolchains
            --------------------
            stable-x86_64-unknown-linux-gnu
            nightly-x86_64-unknown-linux-gnu (default)
            active toolchain
            ----------------
            nightly-x86_64-unknown-linux-gnu (default)
            rustc 1.84.0-nightly (a93c1718c 2024-10-24)
            ➜ code
            

            查看当前使用的stable版本还是nightly版本

            rustup show active-toolchain
            

            切换为nightly版本

            配置环境变量加速

            export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
            export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
            
            ▶ rustup default nightly
            info: using existing install for 'nightly-x86_64-unknown-linux-gnu'
            info: default toolchain set to 'nightly-x86_64-unknown-linux-gnu'
              nightly-x86_64-unknown-linux-gnu unchanged - rustc 1.84.0-nightly (a93c1718c 2024-10-24)
            ➜ code ⚡   在这里插入代码片
            

            切换成稳定版本

            rustup default stable

            四、卸载ubuntu安装的cargo和rustup

            如果你使用 apt 包管理器安装了 Rust 和 Cargo,可以运行以下命令卸载:
            sudo apt remove cargo rustc
            之后,可以使用以下命令来清理缓存和依赖:
            sudo apt remove cargo rustc
            

            五、rust安装以及加速源配置

            • Rust安装及配置
            • 字节跳动

              六、rust交叉编译工具链说明

              针对于stable的cargo而言

              rustup查看能够下载的交叉编译工具链

               rustup target list
              

              rustup查看已经安装的交叉编译工具链

               rustup target list --installed
              aarch64-unknown-linux-gnu
              arm-unknown-linux-gnueabihf
              x86_64-unknown-linux-gnu
              

              rustup下载交叉编译工具链

               rustup target add
              

              查看rustc可以支持的交叉编译的target

               rustc --print target-list
              

              rustup稳定版交叉编译步骤

              支持 Rust 的交叉编译,尤其是在安装了所需目标组件后,涉及多个步骤,包括设置正确的工具链、配置链接器和交叉编译工具链,以及确保你的目标平台的库和工具链可用。

              步骤 1:安装目标组件

              首先,确保你已经通过 rustup 安装了目标组件

              rustup target add aarch64-unknown-linux-gnu
              rustup target add armv7-unknown-linux-gnueabihf
              rustup target add x86_64-unknown-linux-gnu
              

              这些命令会为目标架构安装 Rust 标准库和工具链组件。你可以通过 rustup target list --installed 来确认目标是否已正确安装。

              步骤 2:安装交叉编译工具链

              Rust 本身的工具链并不包括为其他平台编译所需的 C 语言工具链和链接器

              示例:为 armv7-unknown-linux-gnueabihf 安装交叉编译工具链

              如果你正在为 armv7-unknown-linux-gnueabihf(32 位 ARM)进行交叉编译,你需要安装 ARM 工具链。对于 Ubuntu 或 Debian 系统,你可以通过以下命令来安装:

              sudo apt-get update
              sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
              

              类似地,如果你要为 64 位 ARM (aarch64-unknown-linux-gnu) 交叉编译,可以安装:

              sudo apt-get install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
              

              步骤 3:配置环境变量

              通过设置环境变量 CARGO_TARGET__LINKER,你可以告诉 cargo 使用哪些工具链。

              配置 CARGO_TARGET__LINKER

              假设你正在为 armv7-unknown-linux-gnueabihf 交叉编译,并且已安装了 gcc-arm-linux-gnueabihf,你可以设置以下环境变量:

              export CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc
              

              如果你为 64 位 ARM 编译(aarch64-unknown-linux-gnu),则需要设置:

              export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc
              

              配置 AR 和其他工具链,还可能需要设置 ar

              export CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_AR=arm-linux-gnueabihf-ar

              对于 64 位 ARM(aarch64-unknown-linux-gnu),export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_AR=aarch64-linux-gnu-ar

              步骤 4:指定目标架构进行构建

              设置好交叉编译工具链后,使用 cargo build 命令指定目标架构来进行交叉编译。例如,如果你要为 armv7-unknown-linux-gnueabihf 架构编译:

              cargo build --target armv7-unknown-linux-gnueabihf --release
              

              对于 64 位 ARM 架构:

              cargo build --target aarch64-unknown-linux-gnu --release
              

              调试技巧

              查看编译输出:

              • 使用 cargo build --target 时,可以加上 -v 或 --verbose 标志,查看详细的编译输出。这样可以帮助你诊断构建过程中的问题。
                cargo build --target armv7-unknown-linux-gnueabihf --verbose
                cargo build --target armv7-unknown-linux-gnueabihf -vv
                

                使用 strip 或调试符号:如果你不需要调试符号,可以使用 strip 来去除它们,减小二进制文件的大小,尤其是在嵌入式开发中非常有用。

                cargo build --target armv7-unknown-linux-gnueabihf --release
                strip target/armv7-unknown-linux-gnueabihf/release/your_program
                

                参考

                • Rust简介与安装更新
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码