3

是否有 Rust 宏或类似的解决方法可以cargo new在编译时或特别是在执行时将通过在我的源文件中创建的“src”文件夹的路径作为字符串文字包含在内cargo build

我已经成功地完成了类似的操作,include_str!用于包含文件内容,但我需要知道是否可以在代码中直接包含 src 路径。

4

1 回答 1

4

不,但您可以使用以下方法接近file!

const FILE: &'static str = concat!(env!("CARGO_MANIFEST_DIR"), "/", file!());

fn main() {
    use std::path::Path;

    println!("FILE: {:?}", FILE);
    println!("src path: {:?}", Path::new(FILE).parent());
}

输出,在操场上

FILE: "/playground/src/main.rs"
src path: Some("/playground/src")
于 2017-11-15T08:22:03.537 回答