Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust 库板条箱中多个可执行文件的文件布局_Rust_Rust Cargo - Fatal编程技术网

Rust 库板条箱中多个可执行文件的文件布局

Rust 库板条箱中多个可执行文件的文件布局,rust,rust-cargo,Rust,Rust Cargo,我想用两个二进制板条箱和一个包含共享代码的库创建一个rust包。我知道如何将二进制文件的源文件放在src/bin/子目录(例如src/bin/firstbin.rs和src/bin/secondbin.rs)中,并将库代码放在src/或src/lib/中 但是,如果二进制文件中有大量不属于库的非共享代码,并且我想将它们的源代码拆分为多个文件,那么我不确定如何布局源文件。我在考虑对只属于第一个二进制文件的文件使用src/bin/firstbin/,对第二个二进制文件使用src/bin/second

我想用两个二进制板条箱和一个包含共享代码的库创建一个rust包。我知道如何将二进制文件的源文件放在
src/bin/
子目录(例如
src/bin/firstbin.rs
src/bin/secondbin.rs
)中,并将库代码放在
src/
src/lib/

但是,如果二进制文件中有大量不属于库的非共享代码,并且我想将它们的源代码拆分为多个文件,那么我不确定如何布局源文件。我在考虑对只属于第一个二进制文件的文件使用
src/bin/firstbin/
,对第二个二进制文件使用
src/bin/secondbin/
。但是,我不确定如何从
firstbin.rs
secondbin.rs
引用这些文件


这是正确的方法吗?如果是,我如何引用这些文件?如果没有,最好的布局是什么?

您可以将
fn main()
放入
src/bin/firstbin/main.rs
并在同一目录中为子模块添加更多文件。这在《货物手册》中有记录(在文本中,灰色框是错误的)。

是否只有一个包装是必需的?如果我是你,我会用不同的板条箱。我对生锈还不熟悉,所以我还在想最好的方法。不过,将其拆分为多个包似乎有些过分。代码密切相关,我希望它能够保持在一起。例如,我希望所有内容都在一个git存储库中。很明显,在一个包中需要多个二进制文件,因此支持src/bin目录中的多个源文件,但如果它们只是单个文件,则似乎非常有限,除非您有非常大的文件。如果可能的话,我更喜欢将源文件限制在不超过100到200行。在一个项目中可以有几个板条箱(包):IMO,当所有工作完成后,二进制文件的唯一功能是调用库时,在一个板条箱中混合使用库和二进制文件非常有用。对于一个更复杂的项目,最好将其分在不同的板条箱中。哇!这有点让我不知所措-我的Cargo.toml文件都不到10行!分为不同的板条箱,是指不同的包装吗?如果你选择几个板条箱,请查看工作区:谢谢-这正是我要找的。我能问一下你为什么编辑我问题的标题吗?我认为这不太正确,因为我特别询问了一个包装中的三个板条箱:一个图书馆板条箱和两个二进制板条箱。可执行文件不在库板条箱中-它们是包中的板条箱。不要对板条箱和包太挑剔,大多数人总是使用板条箱。我将不得不检查手册中何时添加了DiscTINTION,这对我来说是最近的事(但我可能错了)。