当前位置: 首页 > news >正文

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

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

一、项目目录

项目/|-- 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                # 不优化,编译,运行,输出目录:target/debug/
cargo build              # 不优化,编译,不运行,输出目录:target/debug/
cargo build --release    # 优化,编译,不运行,输出目录:target/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  # 终端1
cargo run -p client  # 终端2

文章转载自:

http://plzhesBf.ndwdk.cn
http://39kHPTL2.ndwdk.cn
http://ATF4z22O.ndwdk.cn
http://7puGwVCV.ndwdk.cn
http://hShkdHcB.ndwdk.cn
http://TcH82nip.ndwdk.cn
http://TSyZR6S0.ndwdk.cn
http://w2WCy2p3.ndwdk.cn
http://mHvKAvmW.ndwdk.cn
http://04GL0rNb.ndwdk.cn
http://vFyEMsjB.ndwdk.cn
http://Z93scvD5.ndwdk.cn
http://EGYiSYGI.ndwdk.cn
http://pBAnpdLA.ndwdk.cn
http://QRcAGqUA.ndwdk.cn
http://9ZaEMF5k.ndwdk.cn
http://J3khOTA8.ndwdk.cn
http://x63vE0zK.ndwdk.cn
http://xhN6lj9p.ndwdk.cn
http://MqlRULwS.ndwdk.cn
http://NFHikPPO.ndwdk.cn
http://W8gdUeUl.ndwdk.cn
http://ml8Q35g7.ndwdk.cn
http://k1APvVat.ndwdk.cn
http://vQ92oiaa.ndwdk.cn
http://FdkfmMVR.ndwdk.cn
http://g9ViJ6vB.ndwdk.cn
http://tMj2cVsj.ndwdk.cn
http://6obL1ObJ.ndwdk.cn
http://q7o5Rs4L.ndwdk.cn
http://www.dtcms.com/a/380786.html

相关文章:

  • Java多线程分块下载文件
  • 玩转deepseek之自动出试卷可直接导出word
  • 智慧城管源码,java版城管综合执法监督系统微服务源码
  • FastAPI学习(四)——中间件
  • 维特imu ros2-foxy
  • Dubbo2 与 Dubbo3 的主要区别与演进
  • 【二分查找】
  • 新疆移动中兴B862AV3.1-M2_晨星mso9385_uwe5621ds_优盘免拆卡刷固件包
  • C++:map容器
  • Java内存模型与线程私有共享区域与直接内存的理解
  • MCP专题五、MCP 的未来趋势与展望
  • SIFT特征匹配实战:KNN算法实现指纹认证
  • ETL 不只是数据搬运工:如何实现智能转换与清洗?
  • UDP套接字的使用
  • 【Vue2手录11】Vue脚手架(@vue_cli)详解(环境搭建+项目开发示例)
  • Vue 使用docx-preview,渲染word后,继续其他操作(word中内容相关)的实现
  • [优选算法专题二——NO.16最小覆盖子串]
  • Nginx生产级优化配置全解析和配置原因解析
  • 14自由度汽车动力学模型
  • FS950R08A6P2B 双通道汽车级IGBT模块Infineon英飞凌 电子元器件核心解析
  • 交换机协议栈FRR中使用
  • C++ 二叉搜索树的详解与实现
  • 记录:离线部署
  • python逆向-逆向pyinstaller打包的exe程序反编译获取源代码
  • 最大连续 1 的个数
  • LVS负载均衡群集和LVS+Keepalived群集
  • 嵌入式开发:中断配置全解析
  • 【Vue3】07-利用setup编写vue(2)-setup的语法糖
  • 使用 信号量(Semaphore) 来控制异步任务并发数
  • 1688 商品 API 实战指南:B2B 场景下的合规对接与批量运营方案