将 Cargo 与我的项目自己的目录结构一起使用

Gil*_*il' 4 directory-structure rust rust-cargo

我可以使用 Cargo 构建 Rust 代码而不使用其标准项目布局吗?

我的源文件不在名为的目录中src,这不会改变。我的二进制文件必须最终位于当前目录中(或者,在某些其他项目中,位于未调用的不同目录中target/SOMETHING)。我可以告诉 Cargo 可执行文件必须从、 和位于同一目录中foo构建吗?foo.rsbar.rsCargo.tomlquxfoo.rs

我不关心 Cargo 作为构建系统或部署系统。我只对它作为图书馆管理系统感兴趣。显然 Cargo 是 Rust 镇上唯一的游戏

DK.*_*DK. 5

并不真地。 您可以通过在清单中显式指定源文件来控制源文件的位置:

[[bin]]
name = "foo"
src = "foo.rs"

[[bin]]
name = "qux"
src = "splong.rs"
Run Code Online (Sandbox Code Playgroud)

我不知道你所说的从foo构建是什么意思,而仅从 构建。您不能随意将源文件组合在一起:要么使用,要么不使用。foo.rs bar.rsquxfoo.rsfoo.rsbar.rs

但您无法从清单中控制目标目录。有一个build.target-dir设置(在Cargo 的配置中,而不是清单中),但它只允许您更改target目录,而不是其中的第二层。您可以使用CARGO_TARGET_DIR环境变量更改它,但也无法从清单中设置环境变量。

也就是说,设置CARGO_TARGET_DIR为项目的根目录也会更改所有中间文件的位置,意味着每次在调试和发布版本之间切换时,都必须进行完整的重新编译。

您可能需要考虑在货物问题跟踪器上提出一个问题,以使其成为一个选项。