Cargo 构建 - 未找到依赖文件

问题描述 投票:0回答:1

我正在使用

log4rs.yaml
.env
等文件。

使用

cargo build
时,不再找到
log4rs.yaml

    log4rs::init_file("log4rs.yaml", Default::default()).unwrap();

    miscellaneous::check_env_variable();

当我运行二进制文件时,出现以下错误消息:

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: No such file or directory (os error 2)', src/main.rs:27:58

我尝试使用构建脚本但没有成功,不知道如何继续或者这是否真的是这里的问题

rust build rust-cargo
1个回答
0
投票

既然您评论说这些文件都位于项目文件夹/目录的根目录中,您可能(最初)正在寻找的是名为:

CARGO_MANIFEST_DIR
的环境变量。

此变量一旦读取(

std::env::var
)将返回 Cargo.toml 所在文件夹/目录的绝对路径。

最初的解决方案如下所示:

// ...
let cargo_path = env::var("CARGO_MANIFEST_DIR").unwrap();
let yaml_path = format!("{}/log4rs.yaml", cargo_path);
log4rs::init_file(yaml_path, Default::default()).unwrap();
// ...

最终的解决方案实际上可能需要您(以某种方式):

  1. 在开发环境之外为 log4rs.yaml 设置
    默认路径
    ,例如:
    ~/.config/my_app/log4rs.yaml
    ~/.my_app/log4rs.yaml
  2. 添加支持以传递
    log4rs.yaml
    文件的任意路径,以便我们可以从其他地方(包括您的开发文件夹内)获取它。
© www.soinside.com 2019 - 2024. All rights reserved.