如何使用单条Cargo命令为不同Rust包指定不同编译目标
解决方案
方案1:直接使用命令行参数(无需修改项目配置,适配所有Cargo版本)
- 首先确认
/foo/Cargo.toml已配置Cargo工作空间,[workspace]段的members列表包含bar包 - 运行如下单条命令即可完成需求:
cargo build --release -p foo --target wasm32-unknown-unknown -p bar --target x86_64-unknown-linux-gnu
方案2:预先配置默认目标,后续用极简命令构建(适配Cargo 1.71及以上版本)
- 在
/foo/Cargo.toml的[package]段添加配置:
default-target = "wasm32-unknown-unknown"
- 在
/foo/bar/Cargo.toml的[package]段添加配置:
default-target = "x86_64-unknown-linux-gnu"
- 后续只要在
/foo目录下运行如下命令,就能自动按对应目标编译两个包:
cargo build --release --workspace
两种方案的编译产物都会分别存放在
target目录下对应目标架构的子目录中,不会互相覆盖。
内容的提问来源于stack exchange,提问作者Ayaz Agayev
相关产品推荐
相关产品推荐

