我可以使用Cargo构建Rust代码而不使用standard project layout吗?
我的源文件不在名为src
的目录中,并且不会更改。我的二进制文件必须最终在当前目录中(或者,在某些其他项目中,在另一个未被称为target/SOMETHING
的目录中)。我是否可以告诉Cargo必须从foo
和foo.rs
在与bar.rs
相同的目录中构建可执行文件Cargo.toml
,从qux
创建foo.rs
?
我不关心Cargo作为构建系统还是作为部署系统。我只对它作为图书馆管理系统感兴趣。 Apparently Cargo is the only game in the Rust town for this
答案 0 :(得分:2)
不是真的。您可以通过在清单中明确指定源文件来控制源文件的位置:
[[bin]]
name = "foo"
src = "foo.rs"
[[bin]]
name = "qux"
src = "splong.rs"
我不知道从foo
和 foo.rs
构建bar.rs
是什么意思,而qux
仅来自foo.rs
{1}}。你不能随意地将源文件一起发布:foo.rs
使用bar.rs
,或者不使用build.target-dir
。
但是您无法从清单中控制目标目录。有target
设置(在Cargo's configuration中,而不是清单),但只允许您更改CARGO_TARGET_DIR
目录,而不是其中的第二级。您可以使用CARGO_TARGET_DIR
environment variable进行更改,但您也无法在清单中设置环境变量。
也就是说,将webView
设置为项目的根目录也会更改所有中间文件的位置,和这意味着每次你在调试和发布版本之间切换,您必须进行完全重新编译。
您可能需要考虑在the Cargo issue tracker上打开一个关于此选项的问题。