指定非标准源文件夹

Specify Non-Standard Source Folder

我正在编写一个多语言项目(一个 Java 库,它通过 FFI 加载和调用 Rust 函数),所以我想将我的代码文件分开一点。我没有将所有内容都放在 src 中,而是创建了文件夹 src/rustsrc/java。我如何告诉 Cargo 我的 lib.rs 文件(以及所有其他源文件)在 src/rust 而不是 src 中?另外,我怎么能告诉它输出到 out/rust 而不是 target?

要手动设置 lib.rs 的路径,您可以在 Cargo.toml 中创建一个 [lib] 部分并将 path 设置为 src/rust/lib.rs。相关文档可以在这里找到:http://doc.crates.io/manifest.html#configuring-a-target

对于输出,您可以将环境变量CARGO_TARGET_DIR设置为out。相关文档可以在这里找到:http://doc.crates.io/config.html#environment-variables

或者您可以创建一个 .cargo/config 文件(也是一个 toml 文件,但没有文件扩展名)并添加一个 [build] 部分,其中设置了关键字 target-dirout。相关文档可以在这里找到:http://doc.crates.io/config.html#configuration-keys