ubuntu

Rust在Ubuntu上如何高效编译

小樊
45
2025-09-23 05:47:27
栏目: 编程语言

1. 安装Rust及依赖工具

首先通过rustup安装最新稳定版Rust(包含rustc编译器和cargo包管理器),并配置国内镜像源加速下载:

# 设置国内镜像源(可选但推荐)
export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup
# 安装rustup
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# 添加cargo到PATH(首次安装后需执行)
source ~/.cargo/env

安装Ubuntu所需的编译工具链(build-essential包含gcc、make等):

sudo apt update && sudo apt install -y build-essential curl

2. 配置Cargo国内镜像

修改~/.cargo/config.toml(若不存在则新建),将依赖仓库替换为国内镜像(如中科大),加速cargo build时的依赖下载:

[source.crates-io]
replace-with = 'ustc'

[registries.ustc]
index = "https://mirrors.ustc.edu.cn/crates.io-index/"

3. 使用最新稳定版Rust

Rust团队持续优化编译器性能,定期升级至最新稳定版可获得更好的编译速度和代码优化:

rustup update stable

4. 优化cargo编译命令

5. 启用增量编译

Rust默认开启增量编译(仅重新编译修改过的文件),确保Cargo.toml[profile.dev]incremental设置为true(默认值):

[profile.dev]
incremental = true  # 保持默认即可

6. 使用编译缓存工具

安装sccache(分布式编译缓存),缓存编译结果以减少重复编译时间:

# 安装sccache
cargo install sccache
# 设置环境变量,让cargo使用sccache作为编译器包装器
export RUSTC_WRAPPER=$(which sccache)

7. 调整并行编译设置

8. 更换快速链接器

使用mold(现代链接器)替代默认的ld,可显著缩短链接时间(尤其对大型项目效果明显):

# 安装mold(Ubuntu 22.04+可通过apt安装)
sudo apt install -y mold
# 设置环境变量,让rustc使用mold作为链接器
export RUSTC_LINKER=mold

9. 移除未使用的依赖

使用cargo-udeps工具检测并移除项目中未使用的依赖项,减少编译时间和二进制文件体积:

# 安装cargo-udeps
cargo install cargo-udeps
# 检测未使用依赖
cargo +nightly udeps
# 手动移除检测到的无用依赖(在Cargo.toml中删除对应项)

10. 优化依赖树

使用cargo tree工具查看依赖关系,识别并解决重复依赖或嵌套过深的问题:

# 安装cargo-tree
cargo install cargo-tree
# 查看依赖树
cargo tree
# 示例:移除重复的serde依赖(若有)

通过以上步骤,可显著提升Rust项目在Ubuntu上的编译效率,兼顾开发时的快速迭代和生产环境的性能需求。

0
看了该问题的人还看了