
Cargo 的 target 目录,Rust 开发者都不陌生。
几个项目下来,磁盘占用几十个 GB 是常事。切个分支,Cargo 又可能从头编译一大片。删了重来?依赖得重新下载,中间产物得重新生成。
这种状态持续了很多年。不是没人想改,是这事牵一发而动全身。构建目录的布局,虽说是Cargo 的内部细节,但太多工具和脚本已经“依赖”了这些未指定的细节——比如从测试文件路径反推二进制文件路径,比如构建脚本里写死 OUT_DIR 的查找逻辑。
2026 年 3 月 13 日,Rust 官方博客发布了一篇“召集令”:《Call for testing: Build directory layout v2》。不是小修小补,是对 target 目录的布局做一次根本性的调整。
“胖” target 的烦恼
Rust 开发者,大概都经历过这种场景:
项目开发中,打开磁盘分析工具一看,各个 Rust 项目的 target 目录加起来几十个 GB。删了吧,下次构建得从头下载依赖、重新编译;不删吧,看着那些重复存储的依赖包,心里总不是滋味。
更让人抓狂的是分支切换。你在 main 分支上编译了一遍,切到 feature/new-feature 分支,Cargo 往往又要重新编译一大片。明明两个分支的依赖 90% 都相同,它却像失忆了一样,把大部分工作重来一遍。
这背后的核心问题在于:旧的构建目录布局将不同编译配置的产出物混合存放,难以有效共享和清理。
v2 布局:按“包名+哈希”重新组织
此次征集测试的 build directory layout v2,并非推倒重来,而是对 target 目录进行一次彻底的“功能分区”。
如果把旧的 target 目录比作一个堆满各种杂物的巨大仓库——调试信息、优化后的二进制、依赖的中间文件全混在一起——那么 v2 布局就像给这个仓库装上了整齐的货架和标签系统。
核心变化在于:从“按内容类型组织”改为“按包名和构建单元的哈希值组织。”
官方博客给出了新旧布局的对比。旧布局下,target/debug/ 里散落着 .fingerprint/、build/、deps/ 等子目录,各种文件按类型堆放。
而新布局中,每个“包名+哈希”对应一个自包含的目录,里面放这个构建单元的所有产出——缓存跟踪信息、编译产物、构建脚本输出等。

这种组织方式的好处是显而易见的:
为什么是现在?为什么邀请测试?
布局变更,是构建系统的“心脏手术”。稍有不慎,就可能导致增量编译错误、链接失败,甚至影响 IDE 的代码跳转。
这也是为什么官方要发起这次“Call for testing”。v2 布局已经在 RFC 3415 中讨论通过,并在 Rust 1.78 版本之后以 Nightly 通道的 -Zbuild-dir-new-layout 标志存在。现在是时候让它在更广泛的场景中接受检验了。
官方希望测试的,正是那些“边缘情况”:
但已知的故障模式已经列出来了,均来自社区反馈的 Issue:
Ed Page在博客里特别提到:这次改动的幕后功臣是 ranger-ross,他“tirelessly worked”(不知疲倦地工作)才把这事推进到可测试阶段。
如何参与测试?
如果你愿意帮助 Rust 团队验证这一变更,可以按照以下步骤操作:
rustup update nightlycargo +nightly test -Zbuild-dir-new-layout如果你想单独测试“构建目录与最终产物目录分离”这个特性(这是 v2 布局的一部分),可以设置环境变量 CARGO_BUILD_BUILD_DIR=build 来验证。
CARGO_BUILD_BUILD_DIR=build cargo +nightly build -Zbuild-dir-new-layout这会将中间构建产物(如依赖的编译结果)存放到 build/ 目录,而最终可执行文件仍留在 target/debug/。官方正在评估是否在 #16147 中将此变为默认行为。
官方博客特别提到,他们需要测试各种真实的项目,无论是小型的 CLI 工具,还是大型的 Web 应用或嵌入式项目。你的每一次构建,都可能成为让 v2 布局更加稳定的关键一步。
未来还会改什么?
v2 布局只是开始。官方明确表示,这次测试的经验将用于指导未来的布局调整,包括:
此外,有些改动这次没做,是因为锁机制的变更被这次布局变更阻塞了——典型的“先有鸡还是先有蛋”问题。
写在最后
v2 布局的落地,不会是终点。随着artifact dependencies、build-std 等特性的成熟,Rust 的构建系统会变得越来越灵活和高效。
对于普通 Rust 用户来说,这是一次几乎“无痛”的升级。我们只需要花几分钟配置一下环境,跑几个构建,然后向官方反馈结果。但正是这无数个“几分钟”,汇聚成了推动 Rust 进化的力量。
参考引用:
谢谢您的阅读,欢迎交流。如果您发现错别字,也请向我发信息。