Rust 项目可以共享构建工件吗?

Mic*_*zek 1 static-libraries rust rust-cargo

我有一个生成静态库的 Rust 项目,还有其他几个项目通过Cargo.toml条目创建依赖于该库的应用程序:

[dependencies]
lib_project = { path = "/path/to/lib_project" }
Run Code Online (Sandbox Code Playgroud)

目前,每个应用程序将lib_project在其构建期间构建一个单独的副本。有没有办法让他们使用现有的构建库/path/to/lib_project/target?或者更一般地说,有没有办法让多个 Rust 项目共享公共依赖项的构建工件?

har*_*mic 5

这是货物工作区的确切用例。

货物工作区允许您让多个库和/或二进制包共享一个目标目录。

货物工作区cargo.toml在顶层有一个文件,它标识作为工作区一部分的库和/或二进制文件,然后是包含组成工作区cargo.toml的每个 crate 和其他文件/目录的子目录。

Cargo 在顶层创建一个单一的目标目录,其中包含所有包含的 crate 的构建工件。这避免了在多次使用库时重建库的需要。