作者:簕竹仔_591 | 来源:互联网 | 2023-08-25 07:13
我有一个生成静态库的 Rust 项目,还有其他几个项目通过Cargo.toml
条目创建依赖于该库的应用程序:
[dependencies]
lib_project = { path = "/path/to/lib_project" }
目前,每个应用程序将lib_project
在其构建期间构建一个单独的副本。有没有办法让他们使用现有的构建库/path/to/lib_project/target
?或者更一般地说,有没有办法让多个 Rust 项目共享公共依赖项的构建工件?
回答
这是货物工作区的确切用例。
货物工作区允许您让多个库和/或二进制包共享一个目标目录。
货物工作区cargo.toml
在顶层有一个文件,它标识作为工作区一部分的库和/或二进制文件,然后是包含组成工作区cargo.toml
的每个 crate 和其他文件/目录的子目录。
Cargo 在顶层创建一个单一的目标目录,其中包含所有包含的 crate 的构建工件。这避免了在多次使用库时重建库的需要。