首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我是否可以指定具有单个Cargo.toml但具有多个代码版本的存储库结构,每个版本都有单独的main.rs文件?

我是否可以指定具有单个Cargo.toml但具有多个代码版本的存储库结构,每个版本都有单独的main.rs文件?
EN

Stack Overflow用户
提问于 2018-09-13 02:40:14
回答 1查看 128关注 0票数 0

我正在写一本关于embedded Rust的书,使用mdbook作为一个git存储库,然后我有另一个由cargo创建的存储库,我在其中放置代码。

我想构建代码的结构,使其与书中的章节相对应,因此位于单独的目录中。

这本书的结构:

代码语言:javascript
复制
├── book
├── book.toml
└── src
    ├── chapter_1.md
    ├── chapter_2.md
    ├── chapter_3.md
    ├── chapter_4.md
    ├── chapter_5.md
    ├── chapter_6.md
    └── SUMMARY.md

以及代码的结构:

代码语言:javascript
复制
├── aarch64-unknown-none.json
├── Cargo.lock
├── Cargo.toml
├── layout.ld
├── Readme.md
├── chapter1
│   └── main.rs
├── chapter2
│   ├── boot.rs
│   └── main.rs
└── chapter3
    ├── boot.rs
    ├── console.rs
    └── main.rs

我更喜欢这种结构,因为读者可以直接查看章节的代码,而不是搜索git提交。我有时也需要在以后修改一些东西,因此git提交不是一个解决方案。

有没有办法在Cargo.toml中指定这种格式?来构建所有目录,或者在命令行上指定哪个目录。

EN

回答 1

Stack Overflow用户

发布于 2018-09-15 20:25:36

确切的解决方案可以通过示例在second edition of the Rust book中找到。

我像这样重新构建了存储库:

代码语言:javascript
复制
├── aarch64-unknown-none.json
├── Cargo.lock
├── Cargo.toml
├── layout.ld
├── Readme.md
├── chapter1
│   ├── Cargo.toml
│   └── main.rs
├── chapter2
│   ├── boot.rs
│   ├── Cargo.toml
│   └── main.rs
└── chapter3
    ├── boot.rs
    ├── Cargo.toml
    ├── console.rs
    └── main.rs

章节目录中的Cargo.toml文件保持不变。仅修改根目录中的Cargo.toml,使其包含以下内容:

代码语言:javascript
复制
[workspace]
members = ["chapter1", "chapter2", "chapter3"]

此解决方案的一个小缺点是,成员在其目录中必须具有不同的机箱名称,因为所有成员的输出都存储在工作区根目录中的target目录中。这只是一个小问题,我很欣赏Cargo提供的灵活性。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52301531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档