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

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的包管理工具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 run

cargo 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 run
   Compiling project v0.1.0 (/home/wangji/code/rust/project)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.71s
     Running `target/debug/project`
Hello, world!

在这里插入图片描述

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

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

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

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

3.创建一个库项目

▶ cargo new --lib project_lib
    Creating 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 test
   Compiling project_lib v0.1.0 (/home/wangji/code/rust/project_lib)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 7.44s
     Running unittests src/lib.rs (target/debug/deps/project_lib-931d5b2ee036b7d3)

running 1 test
test tests::it_works ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests project_lib

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

➜ project_lib ⚡( master)                                     

参考

  • 2024 Rust现代实用教程

http://www.kler.cn/a/370042.html

相关文章:

  • postgresql15的启动
  • 【JDBC】数据库连接的艺术:深入解析数据库连接池、Apache-DBUtils与BasicDAO
  • Autosar CP中SWC收发LIN消息的函数调用流程原理解析
  • 基于 Spring Boot 和 Vue.js 的全栈购物平台开发实践
  • es的date类型字段按照原生格式进行分组聚合
  • .NET 8 项目 Docker 方式部署到 Linux 系统详细操作步骤
  • C++基于opencv的视频质量检测--图像清晰度检测
  • electron 监听窗口高端变化
  • JS | CommonJS、AMD、CMD、ES6-Module、UMD五种JS模块化规范
  • 海外发稿:探索海外外媒宣发分发渠道-大舍传媒
  • 如何使用VBA识别Excel中的“单元格中的图片”(1/2)
  • 着色器的认识
  • JMeter之JMX文件解释
  • Windows驱动开发(三)—— 驱动和应用层通信的几种方式
  • Openpyxl--学习记录
  • 【文心智能体 | AI大师工坊】如何使用智能体插件,完成一款旅游类智能体的开发,来体验一下我的智能体『​​​​​​​背包客』
  • 如何将 Excel 数据转换为 SQL 脚本:基于 Java 的全面解析
  • 问:数据库SQL优化实践整理?
  • python 相关
  • Android--简易计算器实现
  • Redis中Lua脚本的使用场景
  • 深度学习领域如何正确地读取视频
  • java OOP 对象操作
  • 关于<a-upload-dragger>实现选择文件夹,上传文件夹中符合要求的文件,并在所有符合要求文件上传完成后统一进行提示。这里面文件是直接上传到七牛云
  • 利用ChatGPT完成2024年MathorCup大数据挑战赛-赛道A初赛:台风预测与分析
  • springMVC中的请求拦截器