Rustlang book 14.3-错误[E0425]:在板条箱“添加一个”中找不到函数“添加一个”`

Rustlang book 14.3-错误[E0425]:在板条箱“添加一个”中找不到函数“添加一个”`,rust,Rust,我正在翻阅Rustlang的官方书籍,已经到了第二章。但是,一旦我到达构建工作区的某个点,编译器就会抛出一个错误。我的项目看起来像这样(根据书) 使用Cargo.toml [workspace] members = [ "adder", "add-one", ] ... [dependencies] add-one = { path = "../add-one" } 添加一个/src/lib.rs #![allo

我正在翻阅Rustlang的官方书籍,已经到了第二章。但是,一旦我到达构建工作区的某个点,编译器就会抛出一个错误。我的项目看起来像这样(根据书)

使用
Cargo.toml

[workspace]

members = [
    "adder",
    "add-one",
]
...
[dependencies]

add-one = { path = "../add-one" }
添加一个/src/lib.rs

#![allow(unused)]
fn main() {
pub fn add_one(x: i32) -> i32 {
    x + 1
}
}

use add_one;

fn main() {
    let num = 10;
    println!(
        "Hello, world! {} plus one is {}!",
        num,
        add_one::add_one(num)
    );
}
adder/Cargo.toml

[workspace]

members = [
    "adder",
    "add-one",
]
...
[dependencies]

add-one = { path = "../add-one" }
adder/src/main.rs

#![allow(unused)]
fn main() {
pub fn add_one(x: i32) -> i32 {
    x + 1
}
}

use add_one;

fn main() {
    let num = 10;
    println!(
        "Hello, world! {} plus one is {}!",
        num,
        add_one::add_one(num)
    );
}

我最初尝试键入文件,但出现上述错误,因此决定复制/粘贴书中的所有文件,但也没有运气。我错过了什么?我的代码有问题吗,或者书中的示例有问题吗?

您正在
主功能中定义
add\u one

#![允许(未使用)]
fn main(){
发布fn添加一个(x:i32)->i32{
x+1
}
}
嵌套函数的作用域仅限于其父函数,这意味着
add_one
main
之外不可见。您可以通过在模块范围中声明
add_one
来解决此问题:

pub fn add_one(x:i32)->i32{
x+1
}

add_one
是在
main
的主体内部定义的,外部不可见。谢谢@IvanC,删除
fn main(){
并关闭
}
行很有效