与Cargo.toml中的[lib]链接时出现“未解决的导入”

时间:2019-12-16 21:03:02

标签: rust

我正在尝试为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}}

我可能在这里缺少一些超级简单的东西,但是无论是文档还是其他代码示例都无法帮助我解决这个基本问题。

0 个答案:

没有答案