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

【02】RUST项目(Cargo)

文章目录

  • rust项目与编译
    • 创建项目
    • 检查
    • 编译
    • 运行
    • 各级目录文件作用
      • TODO各文件作用
        • Cargo.toml
        • Cargo.lock
  • RUST项目
    • 一些关键字
      • `mod`
      • `pub`
      • `use` (`as`)
      • `pub use`重导出(re-exporting)
      • `crate`
      • `suer`
    • 模块系统
      • 包 Pcakages
      • crate
      • 模块 Modules 和 use
        • main.rs的例子
        • `lib.rs`的例子
        • 拆分文件为多模块例子
      • 路径 path
    • 外部库
      • 引入

rust项目与编译

使用的是cargo最近进行代码的组织与编译功能
顺序大概如下

  1. 创建项目
  2. 检查(可选)因为直接编译可能更耗时
  3. 编译
  4. 运行

创建项目

  • 新建可执行文件项目
    cargo new my-project
    
    具体生成目录如下
    tree
    .
    └── myproject├── Cargo.toml└── src└── main.rs
    
  • 创建库项目
    cargo new my_project --lib
    
    具体生成目录如下
    .
    └── my_project├── Cargo.toml└── src└── lib.rs2 directories, 2 files
    

检查

不生成二进制文件,仅检查错误

cargo check

编译

  • 仅编译
    #在/myproject目录下
    cargo build
    
  • 编译并直接运行
    cargo run
    

运行

./target/debug/myproject  

各级目录文件作用

#在/myproject目录下
tree #使用工具查看文档目录
.
├── Cargo.lock
├── Cargo.toml
├── src
│   └── main.rs
└── target├── CACHEDIR.TAG├── debug│   ├── build│   ├── deps│   │   ├── myproject-cdd513fcf76c48b9│   │   └── myproject-cdd513fcf76c48b9.d│   ├── examples│   ├── incremental│   │   └── myproject-2pjn4c1pvmvdv│   │       ├── s-h4fd3zhz9t-1ko2ztp-ckpu8adq8wnjediwun88xuroh│   │       │   ├── 0b7twmip3jqlz9dx97gx2kmca.o│   │       │   ├── 0zpzdloaurx3efq8g41tkqoeo.o│   │       │   ├── 41wo1xs8hrzdq6eg9v8gl7auo.o│   │       │   ├── 4o0w59sx9m1kew20y66u6yoks.o│   │       │   ├── 6q4x4vxysd5fu835nc9758m82.o│   │       │   ├── 9jy5ak4gepnknnhh9b1axonei.o│   │       │   ├── dep-graph.bin│   │       │   ├── query-cache.bin│   │       │   └── work-products.bin│   │       └── s-h4fd3zhz9t-1ko2ztp.lock│   ├── myproject│   └── myproject.d└── release├── build├── deps│   ├── myproject-6d58c9c5cc533e7e│   └── myproject-6d58c9c5cc533e7e.d├── examples├── incremental├── myproject└── myproject.d14 directories, 22 files

TODO各文件作用

Cargo.toml
[package
http://www.lryc.cn/news/535106.html

相关文章:

  • 二、通义灵码插件保姆级教学-IDEA(使用篇)
  • Docker使用指南与Dockerfile文件详解:从入门到实战
  • 前端权限控制和管理
  • 网络安全讲座之一:网络安全的重要性
  • iOS主要知识点梳理回顾-3-运行时消息机制
  • 深度学习中的Checkpoint是什么?
  • STM32开发笔记,编译与烧录
  • 【CXX-Qt】1 CXX-Qt入门
  • JS宏进阶:XMLHttpRequest对象
  • 物联网智能语音控制灯光系统设计与实现
  • hyperf知识问题汇总
  • 制药行业 BI 可视化数据分析方案
  • 【SVN基础】
  • 多项式插值(数值计算方法)Matlab实现
  • [AI]Mac本地部署Deepseek R1模型 — — 保姆级教程
  • android手机本地部署deepseek1.5B
  • 理解UML中的四种关系:依赖、关联、泛化和实现
  • 机器学习 - 词袋模型(Bag of Words)实现文本情感分类的详细示例
  • Kimi k1.5: Scaling Reinforcement Learning with LLMs
  • 如何评估云原生GenAI应用开发中的安全风险(下)
  • ASP.NET Core程序的部署
  • 《深度LSTM vs 普通LSTM:训练与效果的深度剖析》
  • Spring依赖注入方式
  • Photoshop自定义键盘快捷键
  • 解决VsCode的 Vetur 插件has no default export Vetur问题
  • 关于浏览器缓存的思考
  • Vue3+element-plus表单重置resetFields方法失效问题
  • 解释和对比“application/octet-stream“与“application/x-protobuf“
  • 1158:求1+2+3+...
  • 前端实现在PDF上添加标注(1)