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

【学Rust开发CAD】2 创建第一个工作空间、项目及库

文章目录

  • 一、 创建工作空间
  • 二、新建项目(可执行文件)
  • 三、 新建库(库文件)
  • 四、更新项目依赖
  • 五、编写代码
  • 七、总结


在 Rust 中,工作空间(workspace)允许你管理多个相关的包(crate),这些包可以共享依赖和代码。以下是如何创建一个新的 Rust 工作空间,并在其中新建项目和库(crate)的步骤。

一、 创建工作空间

工作空间本质上是一个包含多个包的目录,这些包通过Cargo.toml文件中的 [workspace] 部分来定义。

  • 新建工作目录“project”,并进入该目录:

  • 在目录中,创建一个 Cargo.toml 文件,并添加以下内容:

[workspace] #工作空间
resolver = "2" #2021版用2
members = [
    "design"
    ]
default-members = [  #编译时包含项
  "design"
]

这里,members 列表包含了你将要创建的可执行项目(design)的目录名。库(shape)的目录名会在后面新建库时自动添加进来。

二、新建项目(可执行文件)

工作目录

  • 在文件夹路径提示框输入 cmd 并回车,打开命令行窗口。
    命令窗口
    在该命令行窗口输入创建可执行文件命令:
    cargo new design
    这将在 project 目录中创建一个名为 design 的子目录,其中包含一个新的可执行文件包。
    在这里插入图片描述
  • 命令窗口输入 cd design 并回车,进如该项目目录。
  • 继续输入命令 code . 并回车,用code编辑器打开项目
  • 编辑器界面见下图,左侧为项目目录及文件列表,点击“main.rs”后打开主文件。
    在这里插入图片描述

三、 新建库(库文件)

在库目录中创建一个新的库包:

  • 返回上一级目录命令
    cd …
  • 建立库文件
    cargo new shape --lib
    在这里插入图片描述

这将在 project 目录中创建一个名为 shape 的子目录,其中包含一个新的库包。

四、更新项目依赖

现在,你可以将库包添加到项目包的依赖中。编辑 design/Cargo.toml 文件,添加以下依赖:
[dependencies]
shape = { path = “…/shape” }
这告诉 Cargo 从工作空间中的 shape 目录查找库包。

五、编写代码

  • 在 shape/src/lib.rs 中添加一些函数或类型:
// shape/src/lib.rs
pub fn ok() -> String {
    "ok!"
}
  • 在 design/src/main.rs 中使用 shape:

// design/src/main.rs
fn main() {
    println!("{}", shape::ok());
}

六、构建和运行项目
命令窗口,回到工作空间根目录(project),运行以下命令构建并运行项目:
cargo run
你应该会看到输出:
ok!

七、总结

通过以上步骤,你成功创建了一个 Rust 工作空间,并在其中新建了一个项目和库。这样,你可以更方便地管理多个相关的包,并共享代码和依赖。


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

相关文章:

  • STL——二叉搜索树
  • 【C++】C++11(二)
  • openai swarm agent框架源码详解及应用案例实战
  • JS进阶--JS听到了不灭的回响
  • Node.js JXcore 打包教程
  • 如何隐藏 Nginx 版本号 并自定义服务器信息,提升安全性
  • 代码随想录 哈希 test 8
  • Oracle Dataguard(主库为双节点集群)配置详解(2):备库安装 Oracle 软件
  • Android14上使用libgpiod[gpioinfo gpioget gpioset ...]
  • Word快捷键汇总
  • 《软硬协同优化,解锁鸿蒙系统AI应用性能新高度》
  • 《通过财报看企业》
  • springmvc搭建流程
  • ClickHouse 教程
  • # 网络编程 - 轻松入门不含糊
  • 杭州铭师堂的云原生升级实践
  • 【轻松学C:编程小白的大冒险】--- 选择 开发工具(IDE)Dev-c++ 03
  • 初识FPGA
  • Qt C++读写NFC标签NDEF网址URI
  • 第30天:PHP应用组件框架前端模版渲染三方插件富文本编辑器CVE审计
  • Java 语法糖详解
  • 如何评价deepseek-V3 VS OpenAI o1 自然语言处理成Sql的能力
  • 智能合约:区块链世界的自动化契约
  • 深入分析 Android BroadcastReceiver (四)
  • 创建型模式3.建造者模式
  • 【LC】169. 多数元素