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

2024 Rust现代实用教程:1.2编译器与包管理工具以及开发环境搭建

文章目录

  • 一、Rust的编译器rustc
  • 二、开发环境搭建
  • 三、Rust的包管理工具Cargo
  • 四、项目结构
    • 1.Cargo.toml文件
    • 2.创建一个可执行文件项目
    • 3.创建一个库项目
  • 参考

一、Rust的编译器rustc

·查看版本

rustc-version

·编译生成二进制文件

rustc -o output filename filename.rs

·编译生成库文件

rustc --crate-type lib filename.rs
fn main()
{println!("Hello, world!");
}

编译及运行

▶ rustc main.rs -o main
▶ ./main 
Hello, world!

二、开发环境搭建

vscode

  • rust-analyzer
  • Error Lens(错误提示)

运行以下命令去安装 Rust-Analyzer:

Nightly Toolchain
rustup component add rust-analyzer-preview

rustup 会将 rust-analyzer 安装到以下路径:

which rust-analyzer 
/home/wangji/.cargo/bin/rust-analyzer

这样的好处是 rust-analyzer 会跟随rustup rustc 一起更新,也能在不同 rustc 版本的项目中用相应版本的rust-analyzer.

配置在vscode中
在这里插入图片描述

在这里插入图片描述

参考:

  • VS Code 配置 Rust-Analyzer

三、Rust的包管理工具Cargo

方式1:
隐式地使用rustc进行编译

方式2:

・创建

cargo new project name
cargo new --lib project name创建一个新的Rust库项目的

构建项目(生成二进制可执行文件或库文件)

cargo build
cargo build-release为生成优化的可执行文件,常用于生产环境

检测

  • 检测项目是否有错误
cargo check

·运行/测试

会运行两步

  • cargo run实际是先执行cargo build,再执行二进制文件
  • cargo test是库项目的执行命令
cargo runcargo test

四、项目结构

库项目

project name/
----Cargo.toml
----src/-----lib.rs

二进制项目

project name/
----Cargo.toml
----src/------main.rs

1.Cargo.toml文件

package

  • 设置项目名
  • 版本等

dependencies

  • 设置依赖
  • [build-dependencies]列出了在构建项目时需要的依赖项(一般是适配环境,比如cargo build适配这个环境)
  • [dev-dependencies]列出了只在开发时需要的依赖项(一般是测试需要加载的依赖项)

在这里插入图片描述

2.创建一个可执行文件项目

cargo run等价于cargo build+执行二进制文件

cargo new project
▶ cargo runCompiling project v0.1.0 (/home/wangji/code/rust/project)Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.71sRunning `target/debug/project`
Hello, world!

在这里插入图片描述

cargo build --release优化后的二进制文件

▶ cargo build --releaseCompiling project v0.1.0 (/home/wangji/code/rust/project)Finished `release` profile [optimized] target(s) in 0.10s

cargo check检查项目的配置是否有问题

▶ cargo checkChecking project v0.1.0 (/home/wangji/code/rust/project)Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.21s

3.创建一个库项目

▶ cargo new --lib project_libCreating library `project_lib` package
note: see more `Cargo.toml` keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
➜ project ⚡( master)                                                                                                   

在这里插入图片描述

运行cargo test

▶ cargo testCompiling project_lib v0.1.0 (/home/wangji/code/rust/project_lib)Finished `test` profile [unoptimized + debuginfo] target(s) in 7.44sRunning unittests src/lib.rs (target/debug/deps/project_lib-931d5b2ee036b7d3)running 1 test
test tests::it_works ... oktest result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00sDoc-tests project_librunning 0 teststest result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s➜ project_lib ⚡( master)                                     

参考

  • 2024 Rust现代实用教程

http://www.mrgr.cn/news/61932.html

相关文章:

  • 【YApi】接口管理平台
  • 前端零基础入门到上班:【Day4】HTML 多媒体与表单深度教程
  • 基于uniapp微信小程序的校园二手书交易系统
  • 浏览器HTTP缓存解读(HTTP Status:200 304)
  • C语言中的位操作
  • Java常用工具类
  • 荒野大镖客:救赎 PC版整合包
  • 【K8S系列】Kubernetes 中 NodePort 类型的 Service 无法访问的问题【已解决】
  • 基于安卓Android的助农商城系统APP(源码+文档+部署+讲解)
  • Rust 力扣 - 54. 螺旋矩阵
  • 数据结构算法学习方法经验总结
  • git快速合并代码dev->master
  • ECharts 折线图 / 柱状图 ,通用配置标注示例
  • JAVA基础-Map集合
  • 三格电子——RS485转光纤点对点式【MS-F155-M】
  • 数据结构与算法——(Hash)哈希表与哈希算法
  • 【生物学&水族馆】金鱼成体幼苗检测活体识别系统源码&数据集全套:改进yolo11-Parc
  • 打工人不上班之后,躺平还是躺赢?
  • 数据结构和算法-动态规划(3)-经典问题
  • 自闭症摘帽:突破束缚的新方式
  • YOLO即插即用模块--PPA
  • 【LeetCode】两数之和、大数相加
  • Brainpy的jit编译环境基础
  • Linux_02 Linux常用软件——vi、vim
  • 【算法】(Python)回溯算法
  • Spring Cloud Ribbon:负载均衡的服务调用