如何用Cargo构建/运行含独立Crate的Rust示例项目?
可行方案说明
完全可以通过Cargo原生功能实现需求,无需依赖shell脚本,以下是两种推荐方案:
方案一:利用Cargo示例配置项统一管理
这种方式能让单文件示例(如test1.rs)和完整crate示例(如test2)使用相同的cargo run/build --example命令,契合Cargo的示例使用习惯。
操作步骤:
单文件示例
test1.rs:Cargo会自动识别examples/下的单文件rs作为示例,直接执行命令即可:# 运行test1 cargo run --example test1 # 构建test1 cargo build --example test1完整crate结构的
test2:在项目根目录的Cargo.toml中添加如下配置:[[example]] name = "test2" # 指向test2的入口文件 path = "examples/test2/src/main.rs"添加后,即可用统一命令操作test2:
# 运行test2 cargo run --example test2 # 构建test2 cargo build --example test2注:如果test2有自定义依赖,可直接在test2目录下的
Cargo.toml中配置,Cargo会自动读取该文件的依赖信息。
方案二:将示例crate加入项目工作区
如果test2需要独立管理依赖、版本或构建配置,推荐将其作为工作区成员,可直接通过crate名称操作它。
操作步骤:
- 修改项目根目录的
Cargo.toml,在[workspace]段中添加test2的路径:[workspace] members = [ # 原有工作区成员(如主crate) ".", # 添加test2作为工作区成员 "examples/test2" ] - 确保test2目录下的
Cargo.toml已正确设置crate名称(如name = "test2"),之后执行:# 运行test2 cargo run -p test2 # 构建test2 cargo build -p test2
注意事项
- 两种方案按需选择:追求命令统一选方案一,需要独立配置选方案二。
- 若之前尝试工作区方式未生效,检查根
Cargo.toml的members路径是否正确,以及test2的Cargo.toml是否存在语法错误。
内容的提问来源于stack exchange,提问作者rsergeant
相关产品推荐
相关产品推荐

