首页 > 解决方案 > 在 Rust 中,我如何才能最好地构建项目以使用包含公共可调用函数的文件?

问题描述

我刚刚开始学习 Rust 并编写了几个简单的测试程序。我现在开始写一个库函数。这个库函数有两个示例程序,每个示例程序使用不同的参数调用另一个文件中的相同函数。这两个程序连同可调用函数最初都在“示例”目录中。但是,使用“cargo build”它失败说可调用函数文件需要一个“main()”函数。最终我在“examples”下创建了另一个文件夹“functions”并将可调用函数复制到该文件夹​​,然后“Cargo build”然后成功了。

The directory structure is now:
├─── format_int:
       ├─── examples:
        |      └─── test_format_int_1.rs
        |      └─── test_format_int_2.rs
        |      ├─── functions:
        |             └─── fn_test_format_int.rs                       
        ├─── src:
              └─── lib:
                      └─── format_int.rs

除了使用的参数之外,示例程序相同。即:

文件:test_format_int_1.rs:-

#[path = "./functions/fn_test_format_int.rs"] mod fn_test_format_int;

const TF_DISPLAY: bool = false;

fn main() {  
    fn_test_format_int::fn_run(TF_DISPLAY);
}

文件:fn_test_format_int.rs:

use std::str;

pub fn fn_run(tf_display: bool) {
    print!("Test formatting of integers\n");
.....

//---- CALL THE FORMAT LIBRARY FUNCTION ----//
    let s_result: String = format_int::format_int(s_mask, i_num);

我确实查看了其他问题和答案,但我找不到任何专门处理上述问题的东西。我还尝试了其他可能的解决方案,但也许它们的结构不正确。

这是在另一个文件(单独的文件夹)中使用可调用函数的正确方法,还是有办法向“Cargo build”指示“.rs”文件包含可调用函数并且不需要 main() 函数?

标签: rustrust-cargo

解决方案


推荐阅读