编译完成后可以执行任务吗?

Rod*_*igo 3 compilation toolchain rust rust-cargo

我知道build.rs可以在程序编译开始之前执行任务,所以我可以准备任何我想要的东西。

如果编译完成后要执行一项任务(例如某种清理)怎么办?有什么办法可以做到这样的事情吗?

举一个简单的例子:在编译之前,我想出于某种原因将文件从 重命名foo.txtabc.txt。然后在编译终止我想将其重命名回foo.txt.

She*_*ter 5

不,从 Rust 1.50 开始就没有任何东西了。RFC #1777 \xe2\x80\x94 添加货物构建后脚本提出了这一点,但没有被接受。

\n

与此同时,一些板条箱制作了自己的本地 Cargo 第三方命令来模仿这一点。一种风格的文档可以在cargo-xtask存储库中找到。TL;DR 形式:

\n
    \n
  1. 创建一个本地二进制包来执行构建以及您需要的任何其他操作。
  2. \n
  3. 添加 Cargo 别名来调用该箱子。
  4. \n
  5. 调用您的自定义命令:cargo xtask build.
  6. \n
\n

也可以看看:

\n\n