【Rust GUI开发入门】编写一个本地音乐播放器(14. 应用打包-制作安装程序)

本系列教程对应的代码已开源在 Github zeedle

本篇文章介绍如何打包所编写的音乐播放器!

为什么要打包?

  • 在某些操作系统,如Windows上,Rust程序通常动态链接C运行时,也就是依赖api-ms-win-crt-*.dll才能运行
  • 相关dll如果跟zeedle.exe不在一个目录下,或者操作系统未安装C运行时,应用将无法正常启动

选择并安装打包工具

这里选择cargo-packager作为打包程序,不要问为什么不用cargo-bundle,因为我用这个没有打包成功

shell 复制代码
cargo install cargo-packager

指定打包配置

Cargo.toml中添加:

toml 复制代码
[package.metadata.packager]
product-name = "Zeedle"
before-packaging-command = "cargo build --release"
resources = ["DLLs/*.dll"]    # 指定将需要的.dll文件添加到安装包里面
authors = ["Jordan Haidee"]
identifier = "dev.zeedle"
copyright = "Copyright © 2025 Zeedle Dev. All rights reserved."

[package.metadata.packager.nsis]
installer-icon = "ui/cover.ico"    # 指定安装包使用这个图标

这里需要的.dll文件,在linux下可以用ldd查找,在Windows下可以用dumpbin查找,dumpbin存在于Developer PowerShell for VS xxxx中,可以直接打开这个shell使用:

shell 复制代码
dumpbin /dependents xxx.exe

进行打包

shell 复制代码
cargo packager --release

生成的文件将被存放到target/release目录下。

测试安装包是否正常

是正常的,并且安装后可以正常运行:

相关推荐
代码狂想家4 小时前
Rust 命令行密码管理器工具开发
开发语言·rust·php
东坡肘子5 小时前
Homebrew 5.0:并行加速、MCP 加持,与 Intel 的最后倒计时 -- 肘子的 Swift 周报 #0111
rust·swiftui·swift
微学AI10 小时前
Rust语言的深度剖析:内存安全与高性能的技术实现操作
java·安全·rust
Source.Liu18 小时前
【Chrono库】WeekdaySet 星期几集合实现解析(weekday_set.rs)
rust·time
是Yu欸18 小时前
Rust 并发实战:从零构建一个内存安全的“番茄时钟”
开发语言·安全·rust
这儿有一堆花19 小时前
用 Rust 复刻 Real Mode 世界
rust
爱吃烤鸡翅的酸菜鱼20 小时前
如何用【rust】做一个命令行版的电子辞典
开发语言·rust
不爱学英文的码字机器20 小时前
Rust 并发实战:使用 Tokio 构建高性能异步 TCP 聊天室
开发语言·tcp/ip·rust
朝九晚五ฺ1 天前
用Rust从零实现一个迷你Redis服务器
服务器·redis·rust
Amos_Web1 天前
Rust实战(三):HTTP健康检查引擎 —— 异步Rust与高性能探针
后端·架构·rust