Rust使用cargo build --release设置发布文件名的方法
学习笔记作者:admin日期:2025-09-13点击:97
摘要:本文介绍了如何通过修改Cargo.toml中的package.name字段来设置Rust项目使用cargo build --release生成的可执行文件名,并提供了多种重命名方法,包括手动重命名、脚本自动化和高级用法。
Rust使用cargo build --release设置发布文件名的方法
1. 修改 Cargo.toml 中的 name 字段
      在 Rust 项目中,使用 cargo build --release 命令构建时,生成的可执行文件名是由 Cargo.toml 文件中的 package.name 字段决定的。
[package]
name = "my-awesome-app"  # 最终生成的可执行文件名为 my-awesome-app (Linux/macOS) 或 my-awesome-app.exe (Windows)
version = "0.1.0"
edition = "2021"
执行命令:
cargo build --release
输出路径为:
target/release/my-awesome-app    # 或 my-awesome-app.exe
      注意:文件名会自动将 name 中的 - 转换为 _(反之不行),但最终生成的二进制文件名使用 - 分隔(Rust 约定)。
2. 设置不同名字的二进制文件
      Cargo 本身不支持直接通过 cargo build 输出自定义文件名(如 app-v1.0.exe),但可以通过以下方式实现:
方法一:构建后手动重命名
cargo build --release
cp target/release/my-awesome-app target/release/myapp-v1.0-x86_64.exe
方法二:使用脚本自动化
#!/bin/bash
APP_NAME="myapp"
VERSION=$(cargo pkgid | cut -d# -f2 | cut -d: -f2)
TARGET_NAME="${APP_NAME}-v${VERSION}"
cargo build --release
cp target/release/$APP_NAME target/release/$TARGET_NAME
方法三:使用 cargo rustc --emit=link=
      --emit=link= 参数可用于指定输出二进制文件名,但仅适用于单个二进制 crate,且必须使用 cargo rustc 而不是 cargo build。
cargo rustc --release --bin myapp -- --emit=link=myapp-release-custom
      这会生成 myapp-release-custom(或 .exe)文件。
3. 多个二进制文件?使用 [[bin]] 配置
      可以在 Cargo.toml 中指定多个二进制目标,并分别命名:
[[bin]]
name = "my_tool"
path = "src/main.rs"
[[bin]]
name = "my_util"
path = "src/util.rs"
构建后会生成:
target/release/my_tool
target/release/my_util
总结
| 目标 | 方法 | 
|---|---|
| 修改发布文件名 | 修改 Cargo.toml中的package.name | 
| 构建为特定文件名(如带版本) | 构建后 cp/mv重命名 | 
| 使用 cargo rustc --emit=link= | 直接指定输出二进制文件名(高级用法) | 
| 多个可执行文件 | 使用 [[bin]]配置 | 
推荐做法
[package]
name = "myapp"
然后构建并重命名:
cargo build --release
cp target/release/myapp target/release/myapp-v1.2.0-linux-x64
适用于发布打包场景(如 CI/CD)。