rust语言 (1.88) 学习笔记:客户端和服务器端同在一个项目中

同一项目下多个可执行文件,多个子项目参照以下:

一、项目目录

bash 复制代码
项目/
  |-- client/
       |-- main.rs
       |-- Cargo.toml
  |-- server/
       |-- main.rs
       |-- Cargo.toml
  |-- Cargo.toml

二、项目公共 Cargo.toml

toml 复制代码
[workspace]                     # 定义Rust工作区配置
members = ["server", "client"]  # 列出工作区包含的所有成员包

[workspace.dependencies]        # 定义工作区级别的共享依赖,供所有成员包使用
xxx = "1.2.34"
yyy = "0.1.23"

三、client/Cargo.toml

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构建项目基础知识

bash 复制代码
cargo run                # 不优化,编译,运行,输出目录:target/debug/
cargo build              # 不优化,编译,不运行,输出目录:target/debug/
cargo build --release    # 优化,编译,不运行,输出目录:target/release/ ,生产环境

cargo check              # 快速验证代码可编译性,不编译   

2、构建整个项目

bash 复制代码
cargo build --release
  • 构建后可执行文件位置:target/release/client.exe、server.exe

3、独立构建

  • -p(或--package)参数:指定工作区。
    • 必须与Cargo.toml中[workspace]定义的members列表名称严格匹配
    • 支持同时指定多个包(如-p pkg1 -p pkg2)
rust 复制代码
cargo build -p client --release
cargo build -p server --release
  • 构建后可执行文件位置:target/release/client.exe、server.exe

4、并行运行

bash 复制代码
cargo run -p server  # 终端1
cargo run -p client  # 终端2
相关推荐
敬往事一杯酒哈8 小时前
海康 AGV 导航读码器学习
学习
qq_2842740510 小时前
机械原理笔记:平面机构自由度计算(复合铰链、局部自由度、虚约束)与四杆机构入门(含考点)
笔记·学习·平面·自动化·制造
qq_2842740511 小时前
数控铣床与加工中心笔记:铣刀与刀柄系统、G54试切对刀、镜像加工指令、孔加工工艺(钻扩铰镗)与固定循环G73/G83/G81/G76/G87/G84
笔记·学习·自动化·制造
Titan202412 小时前
MySQL访问个人学习笔记
笔记·学习·mysql
小雪崩13 小时前
嵌入式学习 day64:字符设备驱动
学习
深圳老胡14 小时前
STM32CubeMX 生成 CMake 工程,用 VSCode 编译与调试的完整流程
笔记·stm32·单片机·代码规范
个 人 练 习 生14 小时前
C++ string 类模拟实现:从底层理解字符串(上)
开发语言·c++·经验分享·学习·程序人生
坤坤子吖14 小时前
C++智能指针:RAII、shared_ptr与内存泄漏
开发语言·c++·笔记·学习
乐橙开放平台14 小时前
智慧连锁客流检测和离岗检测怎么对接
大数据·人工智能·笔记·物联网·自动化·音视频·智能家居
零基础12314 小时前
FinalShell 使用教程:从安装到高效运维
运维·经验分享·笔记·finalshell