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

rust项目可以共享构建工件吗?,rust,static-libraries,rust-cargo,Rust,Static Libraries,Rust Cargo,我有一个生成静态库的Rust项目,还有几个通过Cargo.toml条目生成依赖于库的应用程序: [dependencies] lib_project = { path = "/path/to/lib_project" } 目前,每个应用程序将在其构建过程中构建一个独立的lib_项目。他们有没有办法改用从/path/to/lib_project/target构建的现有库?或者更一般地说,有没有一种方法可以让多个Rust项目共享公共依赖项的构建工件?这正是一个Rust项目的使用

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

[dependencies]
lib_project = { path = "/path/to/lib_project" }

目前,每个应用程序将在其构建过程中构建一个独立的
lib_项目
。他们有没有办法改用从
/path/to/lib_project/target
构建的现有库?或者更一般地说,有没有一种方法可以让多个Rust项目共享公共依赖项的构建工件?

这正是一个Rust项目的使用案例

cargo workspace允许多个库和/或二进制板条箱共享一个目标目录

cargo工作区在顶层有一个
cargo.toml
文件,该文件标识了作为工作区一部分的库和/或二进制文件,然后是包含构成工作区的每个板条箱的
cargo.toml
和其他文件/dir的子目录


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

这正是一个应用程序的用例

cargo workspace允许多个库和/或二进制板条箱共享一个目标目录

cargo工作区在顶层有一个
cargo.toml
文件,该文件标识了作为工作区一部分的库和/或二进制文件,然后是包含构成工作区的每个板条箱的
cargo.toml
和其他文件/dir的子目录


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

实际上,RLIB不是传统意义上的真正静态库,它们更多地是机器代码和内部编译器IR的混合体,这是非常特定于编译器版本的。rust中通常有足够多的通用代码,因此缓存单态子集似乎没有那么大用处。如果项目共享同一个工作区,我相信它们将共享构建工件。事实并非如此,在传统意义上,RLIB不是真正的静态库,它们更像是机器代码和内部编译器IR的混合体,这是非常特定于编译器版本的。rust中通常有足够多的通用代码,缓存单态子集似乎没有什么用处。如果项目共享同一个工作区,我相信它们将共享构建工件。