为什么我得到这个错误,而导入这个Rust模块?



目标:成功导入这个,这样我就可以开始使用函数了。

锈代码:

pub use crate::pqcrypto_dilithium::*;
fn main() {
println!("Hello, world!");
}

Cargo.toml:

[package]
name = "project"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
pqcrypto-dilithium = "0.4.5"

错误:

error[E0432]: unresolved import `crate::pqcrypto_dilithium`
--> main.rs:1:16
|
1 | pub use crate::pqcrypto_dilithium::*;
|                ^^^^^^^^^^^^^^^^^^ maybe a missing crate `pqcrypto_dilithium`?
error: aborting due to previous error
For more information about this error, try `rustc --explain E0432`.

正确使用的代码如下:

pub use pqcrypto_dilithium::*;
fn main() {
println!("Hello, world!");
}

我认为你不应该从crate::开始。

crate::表示从这个工作箱的根目录开始查找。

如果你在项目根目录下有一个名为pqcrypto_dilithium的模块,那么它将工作。就像:

// main.rs/lib.rs
mod pqcrypto_dilithium { ... }
pub use crate::pqcrypto_dilithium::*;
--- 
// main.rs/lib.rs
mod wrap {
mod pqcrypto_dilithium { ... }
}
// This is not going to work
pub use crate::pqcrypto_dilithium::*;
// Works
pub use crate::wrap::pqcrypto_dilithium::*;

最后,在您的例子中:pqcrypto_dilithium是一个深度,一个外部板条箱。所以你不能那样做。

但是你可以简单地这样做:

pub use pqcrypto_dilithium::*;

最新更新