我正在尝试为Rust-Java跨平台程序编写一些测试,其中Rust用作后端的库。我想从新的main.rs中调用测试。
从Java代码调用库(lib.rs)时,虽然工作正常,但我很难将main.rs链接到lib.rs。
这可行,但是在交叉编译时会出错:
Cargo.toml:
pub const ĆALLING: &'static str = "Rust library called";
pub fn foo() -> bool {
return true;
}
lib.rs
use rust_backend::CALLING;
use rust_backend::foo;
fn main() {
println!("{}", CALLING);
if foo() == true { {
println!("foo");
}
}
main.rs
[package]
name = "rust_backend"
version = "0.1.0"
edition = "2018"
[dependencies]
jni = { version = "0.10.2", default-features = false }
[profile.release]
lto = true
[lib]
name = "rust_backend"
crate-type = ["cdylib"]
我希望我的Cargo.toml看起来像这样,以便交叉编译有效:
error[E0432]: unresolved import `rust_backend`
--> src/main.rs:1:5
|
1 | use rust_backend::CALLING;
| ^^^^^^^^^^^^ use of undeclared type or module `rust_backend`
error[E0432]: unresolved import `rust_backend`
--> src/main.rs:2:5
|
2 | use rust_backend::foo;
| ^^^^^^^^^^^^ use of undeclared type or module `rust_backend`
在构建时会导致错误:
{{1}}
我可能在这里缺少一些超级简单的东西,但是无论是文档还是其他代码示例都无法帮助我解决这个基本问题。