Compilation error: can't find crate for `core`
Compilation error: can't find crate for `core`
我正在使用 Rust 1.35.0 来尝试一些 Rust 示例,但我无法编译它,因为我不断收到以下消息:
error[E0463]: can't find crate for `core`
我 运行 rustc --explain E0463
并且我看到以下消息:
You need to link your code to the relevant crate in order to be able to use it
(through Cargo or the `-L` option of rustc example). Plugins are crates as
well, and you link to them the same way.
这是我的 Cargo.toml:
[package]
name = "sensor-node"
version = "0.1.0"
authors = ["joesan <email@gmail.com>"]
edition = "2018"
[dependencies]
dwm1001 = "0.1.0"
panic-halt = "0.2.0"
nb = "0.1.1"
这是我的 main.rs:
fn main() {
let s = String::from("hello"); // s comes into scope
takes_ownership(s); // s's value moves into the function...
// ... and so is no longer valid here
let x = 5; // x comes into scope
makes_copy(x); // x would move into the function,
// but i32 is Copy, so it’s okay to still
// use x afterward
} // Here, x goes out of scope, then s. But because s's value was moved, nothing
// special happens.
fn takes_ownership(some_string: String) { // some_string comes into scope
println!("{}", some_string);
} // Here, some_string goes out of scope and `drop` is called. The backing
// memory is freed.
fn makes_copy(some_integer: i32) { // some_integer comes into scope
println!("{}", some_integer);
} // Here, some_integer goes out of scope. Nothing special happens.
您的代码在 Rust 上运行良好 playground,因此我建议检查您的 Rust 安装和环境设置。
您可能希望将预配置的 Rust Docker image 用于 运行 您的应用。安装 Docker,然后:
docker pull rust
转到您的项目文件夹并运行:
docker run --rm --user "$(id -u)":"$(id -g)" -v "$PWD":/usr/src/myapp -w /usr/src/myapp rust cargo run
输出:
hello
5
对于您在 PC 上的简单示例,您不需要任何这些依赖项:
[dependencies]
dwm1001 = "0.1.0"
panic-halt = "0.2.0"
nb = "0.1.1"
以下是我在 Linux 上测试您的样本的步骤:
cargo new hello
cd hello
code .
打开 main.rs
并粘贴您的示例 main.rs
并保存:
fn main() {
let s = String::from("hello"); // s comes into scope
takes_ownership(s); // s's value moves into the function...
// ... and so is no longer valid here
let x = 5; // x comes into scope
makes_copy(x); // x would move into the function,
// but i32 is Copy, so it’s okay to still
// use x afterward
} // Here, x goes out of scope, then s. But because s's value was moved, nothing
// special happens.
fn takes_ownership(some_string: String) {
// some_string comes into scope
println!("{}", some_string);
} // Here, some_string goes out of scope and `drop` is called. The backing
// memory is freed.
fn makes_copy(some_integer: i32) {
// some_integer comes into scope
println!("{}", some_integer);
} // Here, some_integer goes out of scope. Nothing special happens.
在 hello
文件夹内的终端中,运行:
cargo run
并且输出良好:
hello
5
这可能有帮助:
Shell 命令
rustup component list --installed
输出:
cargo-x86_64-unknown-linux-gnu
clippy-x86_64-unknown-linux-gnu
rls-x86_64-unknown-linux-gnu
rust-analysis-x86_64-unknown-linux-gnu
rust-docs-x86_64-unknown-linux-gnu
rust-src
rust-std-x86_64-unknown-linux-gnu
rustc-x86_64-unknown-linux-gnu
rustfmt-x86_64-unknown-linux-gnu
Shell 命令:
rustup show
输出:
Default host: x86_64-unknown-linux-gnu
installed toolchains
--------------------
stable-x86_64-unknown-linux-gnu (default)
nightly-x86_64-unknown-linux-gnu
active toolchain
----------------
stable-x86_64-unknown-linux-gnu (default)
rustc 1.35.0 (3c235d560 2019-05-20)
我正在使用 Rust 1.35.0 来尝试一些 Rust 示例,但我无法编译它,因为我不断收到以下消息:
error[E0463]: can't find crate for `core`
我 运行 rustc --explain E0463
并且我看到以下消息:
You need to link your code to the relevant crate in order to be able to use it
(through Cargo or the `-L` option of rustc example). Plugins are crates as
well, and you link to them the same way.
这是我的 Cargo.toml:
[package]
name = "sensor-node"
version = "0.1.0"
authors = ["joesan <email@gmail.com>"]
edition = "2018"
[dependencies]
dwm1001 = "0.1.0"
panic-halt = "0.2.0"
nb = "0.1.1"
这是我的 main.rs:
fn main() {
let s = String::from("hello"); // s comes into scope
takes_ownership(s); // s's value moves into the function...
// ... and so is no longer valid here
let x = 5; // x comes into scope
makes_copy(x); // x would move into the function,
// but i32 is Copy, so it’s okay to still
// use x afterward
} // Here, x goes out of scope, then s. But because s's value was moved, nothing
// special happens.
fn takes_ownership(some_string: String) { // some_string comes into scope
println!("{}", some_string);
} // Here, some_string goes out of scope and `drop` is called. The backing
// memory is freed.
fn makes_copy(some_integer: i32) { // some_integer comes into scope
println!("{}", some_integer);
} // Here, some_integer goes out of scope. Nothing special happens.
您的代码在 Rust 上运行良好 playground,因此我建议检查您的 Rust 安装和环境设置。
您可能希望将预配置的 Rust Docker image 用于 运行 您的应用。安装 Docker,然后:
docker pull rust
转到您的项目文件夹并运行:
docker run --rm --user "$(id -u)":"$(id -g)" -v "$PWD":/usr/src/myapp -w /usr/src/myapp rust cargo run
输出:
hello
5
对于您在 PC 上的简单示例,您不需要任何这些依赖项:
[dependencies]
dwm1001 = "0.1.0"
panic-halt = "0.2.0"
nb = "0.1.1"
以下是我在 Linux 上测试您的样本的步骤:
cargo new hello
cd hello
code .
打开 main.rs
并粘贴您的示例 main.rs
并保存:
fn main() {
let s = String::from("hello"); // s comes into scope
takes_ownership(s); // s's value moves into the function...
// ... and so is no longer valid here
let x = 5; // x comes into scope
makes_copy(x); // x would move into the function,
// but i32 is Copy, so it’s okay to still
// use x afterward
} // Here, x goes out of scope, then s. But because s's value was moved, nothing
// special happens.
fn takes_ownership(some_string: String) {
// some_string comes into scope
println!("{}", some_string);
} // Here, some_string goes out of scope and `drop` is called. The backing
// memory is freed.
fn makes_copy(some_integer: i32) {
// some_integer comes into scope
println!("{}", some_integer);
} // Here, some_integer goes out of scope. Nothing special happens.
在 hello
文件夹内的终端中,运行:
cargo run
并且输出良好:
hello
5
这可能有帮助:
Shell 命令
rustup component list --installed
输出:
cargo-x86_64-unknown-linux-gnu clippy-x86_64-unknown-linux-gnu rls-x86_64-unknown-linux-gnu rust-analysis-x86_64-unknown-linux-gnu rust-docs-x86_64-unknown-linux-gnu rust-src rust-std-x86_64-unknown-linux-gnu rustc-x86_64-unknown-linux-gnu rustfmt-x86_64-unknown-linux-gnu
Shell 命令:
rustup show
输出:
Default host: x86_64-unknown-linux-gnu installed toolchains -------------------- stable-x86_64-unknown-linux-gnu (default) nightly-x86_64-unknown-linux-gnu active toolchain ---------------- stable-x86_64-unknown-linux-gnu (default) rustc 1.35.0 (3c235d560 2019-05-20)