Several Cargo projects might share the libraries by using the same target dir.
.cargo/config
Place a ".cargo" folder in a project and create a "config" file there containing:
[build]
target-dir = "/path/to/your/shared/target/dir"
On Unix this might look like:
mkdir ~/shared_rust_target
mkdir .cargo
echo "[build]" > .cargo/config
echo "target-dir = "$HOME/shared_rust_target"" >> .cargo/config
CARGO_TARGET_DIR
Set the CARGO_TARGET_DIR
environment variable.
On Unix this might look like:
export CARGO_TARGET_DIR = "$HOME/shared_rust_target"
See this commit for some extra target-dir
documentation.
In particular, prior to Cargo 1.9 you shouldn't build several projects into the same target dir concurrently. (Here's more on how Cargo 1.9 supports concurrent builds).
target-dir
is also mentioned in the Cargo docs.
Note that personally I'm only using the target-dir
feature to redirect the builds into a different place, so I never tried to do the shared builds. But it should work, according to this issue.
P.S. It is now also possible to achieve crate reuse with workspaces.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…