目录

Cargo 运行出错及解决方案

问题

1
2
3
4
5
6
7
❯ cargo run
error: failed to run `rustc` to learn about target-specific information

Caused by:
  process didn't exit successfully: `rustc - --crate-name ___ --print=file-names -Zprofile -Ccodegen-units=1 -Copt-level=0 -Clink-dead-code -Coverflow-checks=off -Zpanic_abort_tests -Cpanic=abort --crate-type bin --crate-type rlib --crate-type dylib --crate-type cdylib --crate-type staticlib --crate-type proc-macro --print=sysroot --print=cfg` (exit code: 1)
--- stderr
error: the option `Z` is only accepted on the nightly compiler`

最近更新了rust, 然后运行cargo run, 莫名其妙的出现了上面的问题。

原因

在 rust 官网的 issue 里找解决方案,都是 open 状态的,没有实际意义。那么就得回到原始方式。 按照提示,说Z 这个参数仅适用于nightly版本的 rust 编译器,但是我用的是stable版本的 rust;

1
2
3
4
5
6
7
❯ rustup show
Default host: x86_64-apple-darwin
rustup home:  /Users/c4/.rustup

stable-x86_64-apple-darwin (default)
rustc 1.44.0 (49cae5576 2020-06-01)

版本确定,那么只能将语音归结到命令行某个地方有注入参数。第一个想到的就是环境变量,打开我的~/.zshrc, 果然在最下面找到了这么一条记录,看到-Z, 应该就是他了。

1
export RUSTFLAGS="-Zprofile -Ccodegen-units=1 -Copt-level=0 -Clink-dead-code -Coverflow-checks=off -Zpanic_abort_tests -Cpanic=abort"

解决方案

删除该行记录,运行程序,成功输出hello world

Refs

Disclaimer

本文仅代表个人观点,与 Thoughtworks 公司无任何关系。


https://cdn.staticaly.com/gh/guzhongren/data-hosting@master/20210819/wechat.ae9zxgscqcg.png