Rust使用cargo build --release设置发布文件名的方法
学习笔记作者:admin日期:2025-09-13点击:12
摘要:本文介绍了如何通过修改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)。