不能将 `-Z macro-backtrace` 不稳定选项与 `cargo` 一起使用

Can't use `-Z macro-backtrace` unstable option with `cargo`

我在编写 Rust 宏时遇到了一个我无法理解的关于我的宏的错误。为了更好地理解它,我尝试通过设置 -Z macro-backtrace 不稳定选项并再次编译来遵循编译器的建议。这是建议:

note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)

但是这样做:

cargo run -Z macro-backtrace

结果:

error: unknown `-Z` flag specified: macro-backtrace

我已经通过项目目录中的 运行 rustup override nightlyrustup default nightly 完全切换到夜间工具链,以便将来使用此功能,但错误仍然存​​在。

通过网络挖掘,我找到了一种使用 cargo -Z help:

列出所有 -Z 选项的方法

Available unstable (nightly-only) flags:

    -Z avoid-dev-deps   -- Avoid installing dev-dependencies if possible
    -Z minimal-versions -- Install minimal dependency versions instead of maximum
    -Z no-index-update  -- Do not update the registry, avoids a network request for benchmarking
    -Z unstable-options -- Allow the usage of unstable options
    -Z timings          -- Display concurrency information
    -Z doctest-xcompile -- Compile and run doctests for non-host target using runner config
    -Z terminal-width   -- Provide a terminal width to rustc for error truncation

Run with 'cargo -Z [FLAG] [SUBCOMMAND]'

See https://doc.rust-lang.org/nightly/cargo/reference/unstable.html for more information about these flags.

-Z macro-backtrace...我去了指定的 link,但即使在那里搜索 macro-backtrace 也没有结果。

所以我被卡住了...我非常想使用这个功能,但似乎找不到激活它的方法。

我们将不胜感激。

-Z macro-backtracerustc 标志,而不是 cargo 标志。您应该能够使用 cargo +nightly rustc -- -Z macro-backtrace 将其传递给 rustc。 (如果您已经切换到默认编译器,则命令行中的 +nightly 是可选的。)

或者,您可以设置 RUSTFLAGS 环境变量:

export RUSTFLAGS="-Z macro-backtrace"