Build 指定非标准源文件夹

Build 指定非标准源文件夹,build,rust,rust-cargo,Build,Rust,Rust Cargo,我正在编写一个多语言项目(一个Java库,它通过FFI加载和调用Rust函数),因此我想将代码文件分成几部分。我没有把所有东西都放在src中,而是制作了src/rust和src/java文件夹。我如何告诉Cargo我的lib.rs文件(以及所有其他源文件)位于src/rust而不是src?此外,我如何告诉它输出到out/rust而不是target?要手动设置lib.rs的路径,您可以在Cargo.toml中创建[lib]部分,并将路径设置为src/rust/lib.rs。相关文件可在此处找到:

我正在编写一个多语言项目(一个Java库,它通过FFI加载和调用Rust函数),因此我想将代码文件分成几部分。我没有把所有东西都放在
src
中,而是制作了
src/rust
src/java
文件夹。我如何告诉Cargo我的
lib.rs
文件(以及所有其他源文件)位于
src/rust
而不是
src
?此外,我如何告诉它输出到
out/rust
而不是
target

要手动设置
lib.rs
的路径,您可以在
Cargo.toml
中创建
[lib]
部分,并将
路径设置为
src/rust/lib.rs
。相关文件可在此处找到:

对于输出,可以将环境变量
CARGO\u TARGET\u DIR
设置为
out
。相关文件可在此处找到:


或者您可以创建一个
.cargo/config
文件(也是一个
toml
-文件,但没有文件扩展名),并添加一个
[build]
部分,其中键
target dir
设置为
out
。相关文档可在此处找到:

除了src目录外,是否有与
货物\目标\目录
等效的目录?我不希望显式地给出所有文件的路径。您只需要指定
lib.rs
,不需要指定所有子模块。如果您指的是
[bin]
[test]
[bench]
目标,那么是的,您需要为每个目标指定一个。