我正在编写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
和rustup 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
。。。我去了指定的链接,但即使在那里搜索macro-backtrace
也没有结果。
所以我被卡住了。。。我很想使用这个功能,但似乎找不到激活它的方法。
任何帮助都将不胜感激。
-Z macro-backtrace
是rustc
标志,而不是cargo
标志。您应该能够使用cargo +nightly rustc -- -Z macro-backtrace
将其传递给rustc
。(如果您已经将夜间编译器切换为默认编译器,则命令行中的+nightly
是可选的。(
或者,您可以设置RUSTFLAGS
环境变量:
export RUSTFLAGS="-Z macro-backtrace"