33

我正在编写 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 nightly我已经通过在项目目录中运行并为将来使用此功能完全切换到 nightly 工具链rustup default nightly,但错误仍然存​​在。

在通过网络进行挖掘时,我找到了一种列出所有-Z选项的方法cargo -Z help


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......我去了指定的链接,但即使在那里搜索也macro-backtrace没有结果。

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

任何帮助将不胜感激。

4

1 回答 1

47

-Z macro-backtracerustc一面旗帜,不是cargo一面旗帜。您应该能够将其传递给rustcusing cargo +nightly rustc -- -Z macro-backtrace。(+nightly如果您已经切换到 nightly 编译器作为默认值,则命令行中的 是可选的。)

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

export RUSTFLAGS="-Z macro-backtrace"
于 2020-07-29T08:50:01.843 回答