【发布时间】:2022-01-17 08:26:29
【问题描述】:
您好,我正在尝试学习 rust 的基础知识,而 bevy 的依赖项中的一个包 (ron) 引发了错误。
当我运行cargo build 时,我看到了:
编译ron v0.7.0
编译 bevy_diagnostic v0.6.0
编译 bevy_gilrs v0.6.0 编译bevy_winit v0.6.0报错:
无法识别的选项:'json'
错误:无法编译
ron警告:构建失败,等待中
其他要完成的工作...
错误:构建失败
要了解更多信息,我添加了--verbose 标志,这给了我失败的rustc 命令:
/home/tomek/.cargo/bin/rustc --crate-name ron --edition=2018 /home/tomek/.cargo/registry/src/github.com-1ecc6299db9ec823/ron-0.7.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 -C metadata =943a31496299e8f3 -C 额外文件名=-943a31496299e8f3 --out-dir /storage/projects/econsim/target/debug/deps -L 依赖=/storage/projects/econsim/target/debug/deps --extern base64=/storage/projects/econsim/target/debug/deps/libbase64-532e1d4e3f8b3bca.rmeta --extern bitflags=/storage/projects/econsim/target/debug/deps/libbitflags-c67d8a8593a87f67.rmeta --extern serde=/storage/projects/econsim/target/debug/deps/libserde-42ff4d97cbefd932.rmeta --cap-lints 允许
所以我把它放在命令行中,这是没有任何错误代码的输出:
{"artifact":"/storage/projects/econsim/target/debug/deps/ron-943a31496299e8f3.d","emit":"dep-info"} {"artifact":"/storage/projects/econsim/target/debug/deps/libron-943a31496299e8f3.rmeta","emit":"metadata"} {"artifact":"/storage/projects/econsim/target/debug/deps/libron-943a31496299e8f3.rlib","emit":"link"}
最初我没有指定 rustc 的路径供货物使用,但无论哪种方式我都得到了这个错误。如果cargo 调用rustc 时没有记错,那么--json 不再是一个有效的选项,但是当我在shell 中运行rustc 时它可以吗?我不确定从这里开始。
【问题讨论】:
-
cargo --version和rustc --version输出什么? -
rustc 说
rustc 1.58.0 (02072b482 2022-01-11)和 cargocargo 1.58.0 -
至少有一种方法可以让 cargo 丢弃
--json标志,因为在我看来这更像是一个格式化选项,而不是在实际编译过程中使用的东西? -
error-format=json可能应该被解释为“错误格式是机器可读的”,即“Cargo 可以解析来自 rustc 的错误并正确显示它们”。
标签: rust rust-cargo bevy