• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

[Rust] Workspace,Package, Crate 和 Module

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

package(包)

一个 package 对应一个项目,package 的信息在 Cargo.toml 里面定义。

crate(木箱、箱子)

crate 指的是 package 编译后的输出文件。以 Windows 为例,可能会产生 .exe 文件或者 .rlib 文件。
crate 有两种类型: executable(可执行的) 和 library(库)。
一个 package 可以包含 0 到 n 个 可执行的 crate,和 0 到 1 个 library。
如果,想要在一个 package 里只生成一个可执行的文件,只要写 src/main.rs文件就可以了。
如果,想要在一个 package 里只生成一个库文件,只要写 src/lib.rs文件就可以了。
如果,想要在一个 package 里生成多个可执行的文件和一个库文件,需要在 src/bin目录下放入多个含有main()函数的 rust 文件;和 一个 src/lib.rs文件。这种方法有点儿奇怪,所以建议避免使用这种模式,而使用 workspace 来管理多个编译结果。

module(模块)

一个 rust 文件对应一个 module。module 里可以内嵌多个 module。

workspace(工作空间)

通常,我们期望一个 package 只产生一个 crate(编译结果)。
当需要管理多个项目的时候,workspace 提供了一种更友好的方式。
一个 workspace 是一个目录,含一个 Cargo.toml 文件,并且让包含的 packages 共享一个Cargo.lock,统一了依赖。
所有 packages 的输出都会放到 workspace 的 target 目录里。

一个典型的 workspace 目录结构:

├── Cargo.lock
├── Cargo.toml
├── add-one
│   ├── Cargo.toml
│   └── src
│       └── lib.rs
├── adder
│   ├── Cargo.toml
│   └── src
│       └── main.rs
└── target

workspace 的定义文件: Cargo.toml

[workspace]

members = [
    "adder",
    "add-one",
]

参照


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
matlab绘图发布时间:2022-07-18
下一篇:
Matlab绘图技巧发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap