Rust 编译器找不到 'std' 的箱子
Rust compiler can't find crate for 'std'
我最近从 this site(Linux 64 位)下载并解压了 Rust 语言。
然后我使用下载中给定的脚本安装了 Rust install.sh
:
root@kali:~# /root/rust-1.9.0-x86_64-unknown-linux-gnu/install.sh
install: uninstalling component 'rustc'
install: creating uninstall script at /usr/local/lib/rustlib/uninstall.sh
install: installing component 'rustc'
install: installing component 'rust-std-x86_64-unknown-linux-gnu'
install: installing component 'rust-docs'
install: installing component 'cargo'
Rust is ready to roll.
我正在尝试安装一个装有货物的箱子,但我一直 运行 进入此错误:
root@kali:~# cargo install racer
Updating registry `https://github.com/rust-lang/crates.io-index`
Compiling winapi v0.2.7
Compiling bitflags v0.5.0
error: can't find crate for `std` [E0463]
error: aborting due to previous error
Build failed, waiting for other jobs to finish...
error: can't find crate for `std` [E0463]
error: aborting due to previous error
error: failed to compile `racer v1.2.10`, intermediate artifacts can be found at `/root/target-install`
cargo install cargo-edit
失败,结果与上面相同,因此它不限于特定的包。
甚至放一个简单的程序:
fn main() {
println!("Hello, world!");
}
在名为 hello.rs
和 运行 rustc hello.rs
的文件中无法编译;它给出了同样的错误:error: can't find crate for 'std' [E0463]
.
下载时带有一个名为 rust-std-x86_64-unknown-linux-gnu
的目录,我假设它是 std crate。在尝试定位 std crate 时如何指示 rustc 找到该目录?
以下将适用于最简单的编译。
假设您将 tar 文件提取到,比如
$HOME/rust-1.10.0-x86_64-unknown-linux-gnu
然后运行
arch=x86_64-unknown-linux-gnu
dl=$HOME/rust-1.10.0-$arch
$dl/rustc/bin/rustc -L $dl/rustc/lib \
-L $dl/rust-std-$arch/lib/rustlib/$arch/lib \
hello.rs
但我相信更好的方法是 运行 按照 Chris Morgan 的建议进行 rustup。
耦合更多点
- 您不应该以 root 身份编译代码。
- 您可能需要重新登录或 运行 bash -l 才能通过 rustup 设置环境。
(这里是铁锈新手)
对我来说 (Arch Linux) 删除系统的 Rust 解决了这个问题。
pacman -Rc rust
我认为用户安装的 Rust 和系统安装的 Rust 之间存在冲突。
我最近从 this site(Linux 64 位)下载并解压了 Rust 语言。
然后我使用下载中给定的脚本安装了 Rust install.sh
:
root@kali:~# /root/rust-1.9.0-x86_64-unknown-linux-gnu/install.sh
install: uninstalling component 'rustc'
install: creating uninstall script at /usr/local/lib/rustlib/uninstall.sh
install: installing component 'rustc'
install: installing component 'rust-std-x86_64-unknown-linux-gnu'
install: installing component 'rust-docs'
install: installing component 'cargo'
Rust is ready to roll.
我正在尝试安装一个装有货物的箱子,但我一直 运行 进入此错误:
root@kali:~# cargo install racer
Updating registry `https://github.com/rust-lang/crates.io-index`
Compiling winapi v0.2.7
Compiling bitflags v0.5.0
error: can't find crate for `std` [E0463]
error: aborting due to previous error
Build failed, waiting for other jobs to finish...
error: can't find crate for `std` [E0463]
error: aborting due to previous error
error: failed to compile `racer v1.2.10`, intermediate artifacts can be found at `/root/target-install`
cargo install cargo-edit
失败,结果与上面相同,因此它不限于特定的包。
甚至放一个简单的程序:
fn main() {
println!("Hello, world!");
}
在名为 hello.rs
和 运行 rustc hello.rs
的文件中无法编译;它给出了同样的错误:error: can't find crate for 'std' [E0463]
.
下载时带有一个名为 rust-std-x86_64-unknown-linux-gnu
的目录,我假设它是 std crate。在尝试定位 std crate 时如何指示 rustc 找到该目录?
以下将适用于最简单的编译。 假设您将 tar 文件提取到,比如
$HOME/rust-1.10.0-x86_64-unknown-linux-gnu
然后运行
arch=x86_64-unknown-linux-gnu
dl=$HOME/rust-1.10.0-$arch
$dl/rustc/bin/rustc -L $dl/rustc/lib \
-L $dl/rust-std-$arch/lib/rustlib/$arch/lib \
hello.rs
但我相信更好的方法是 运行 按照 Chris Morgan 的建议进行 rustup。
耦合更多点
- 您不应该以 root 身份编译代码。
- 您可能需要重新登录或 运行 bash -l 才能通过 rustup 设置环境。
(这里是铁锈新手)
对我来说 (Arch Linux) 删除系统的 Rust 解决了这个问题。
pacman -Rc rust
我认为用户安装的 Rust 和系统安装的 Rust 之间存在冲突。