同一项目下多个可执行文件,多个子项目参照以下:
一、项目目录
项目/|-- client/|-- main.rs|-- Cargo.toml|-- server/|-- main.rs|-- Cargo.toml|-- Cargo.toml
二、项目公共 Cargo.toml
[workspace] # 定义Rust工作区配置
members = ["server", "client"] # 列出工作区包含的所有成员包[workspace.dependencies] # 定义工作区级别的共享依赖,供所有成员包使用
xxx = "1.2.34"
yyy = "0.1.23"
三、client/Cargo.toml
[package] # 定义包(package)的基本信息
name = "client" # 包的名称,用于在Cargo生态系统中标识此包
version = "0.1.0" # 包的版本号,遵循语义化版本控制规范(SemVer)
edition = "2024" # 指定使用的Rust版本(edition)[[bin]] # 定义可执行二进制目标(bin target),可以有多个二进制目标
name = "client" # 二进制文件的名称,编译后生成的可执行文件名
path = "main.rs" # 二进制目标的源码路径,指向main.rs文件[dependencies] # 定义此包的依赖项
xxx.workspace = true # 引用工作区中定义的xxx依赖
yyy.workspace = true # 引用工作区中定义的yyy依赖
server/Cargo.toml
:中内容参照上述做适当修改。
四、构建可执行文件
1、cargo构建项目基础知识
cargo run
cargo build
cargo build --release cargo check
2、构建整个项目
cargo build --release
- 构建后可执行文件位置:target/release/client.exe、server.exe
3、独立构建
-p
(或--package
)参数:指定工作区。
- 必须与
Cargo.toml
中[workspace]
定义的members
列表名称严格匹配 - 支持同时指定多个包(如
-p pkg1 -p pkg2
)
cargo build -p client --release
cargo build -p server --release
- 构建后可执行文件位置:target/release/client.exe、server.exe
4、并行运行
cargo run -p server
cargo run -p client