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)。

上一篇      下一篇