"找不到`std`"的箱子​​? - 使用普通代码编译错误

时间:2014-06-25 19:41:44

标签: rust

我刚刚更新到每晚最新生锈:

> rustc --version
rustc 0.11.0-pre-nightly (05ca9f7 2014-06-24 22:06:48 +0000)
host: x86_64-apple-darwin

之后,即使是简单的程序也无法编译,并出现以下错误:

> cat main.rs

fn main() {
    print!("Hello world");
}%   

> rustc main.rs 
main.rs:1:1: 1:1 error: can't find crate for `std`
main.rs:1 // Playground
          ^
error: aborting due to previous error

夜间是否有一些编译器错误,或者我没有掌握该语言的一些核心思想?

3 个答案:

答案 0 :(得分:20)

事实证明,如果你从"半稳定"升级?与Homebrew一起安装的版本,您应该首先卸载homebrew版本,并且仅在每晚安装之后。

否则,您将面临所讨论的问题:缺少系统库等,因为生锈库没有使用版本控制并位于同一位置。

答案 1 :(得分:2)

通常,这意味着标准库有多个版本。尝试重新安装,或卸载,然后重新安装,以清除它。

答案 2 :(得分:0)

我尝试使用Fedora repo提供的软件包在Fedora系统上工作时遇到了同样的错误。

事实证明我也安装了旧版本的Rust(通过rustup)。我在使用DNF安装Rust包之前删除了它,但我仍然遇到error: can't find crate for `std`错误。 This bug report指出了我正确的方向。

原来我有一个空的/usr/lib64/rustlib目录作为上一次安装的补充(而正确的目录是/usr/lib/rustlib)。删除它解决了问题。

相关问题