我刚刚更新到每晚最新生锈:
> 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
夜间是否有一些编译器错误,或者我没有掌握该语言的一些核心思想?
答案 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
)。删除它解决了问题。