Rust can't find crate

Stein picture Stein · Dec 25, 2015 · Viewed 36.6k times · Source

I'm trying to create a module in Rust and then use it from a different file. This is my file structure:

matthias@X1:~/projects/bitter-oyster$ tree
.
├── Cargo.lock
├── Cargo.toml
├── Readme.md
├── src
│   ├── liblib.rlib
│   ├── lib.rs
│   ├── main.rs
│   ├── main.rs~
│   └── plot
│       ├── line.rs
│       └── mod.rs
└── target
    └── debug
        ├── bitter_oyster.d
        ├── build
        ├── deps
        ├── examples
        ├── libbitter_oyster.rlib
        └── native

8 directories, 11 files

This is Cargo.toml:

[package]
name = "bitter-oyster"
version = "0.1.0"
authors = ["matthias"]

[dependencies]

This is main.rs:

extern crate plot;

fn main() {
    println!("----");
    plot::line::test();
}

This is lib.rs:

mod plot;

this is plot/mod.rs

mod line;

and this is plot/line.rs

pub fn test(){
    println!("Here line");
}

When I try to compile my program using: cargo run I get:

   Compiling bitter-oyster v0.1.0 (file:///home/matthias/projects/bitter-oyster)
/home/matthias/projects/bitter-oyster/src/main.rs:1:1: 1:19 error: can't find crate for `plot` [E0463]
/home/matthias/projects/bitter-oyster/src/main.rs:1 extern crate plot;

How do I compile my program? As far as I can tell from online documentations this should work, but it doesn't.

Answer

Andy Hayden picture Andy Hayden · Dec 28, 2016

If you see this error:

error[E0463]: can't find crate for `PACKAGE`
  |
1 | extern crate PACKAGE;
  | ^^^^^^^^^^^^^^^^^^^^^ can't find crate

it could be that you haven't added the desired crate to the dependencies list in your Cargo.toml:

[dependencies]
PACKAGE = "1.2.3"

See specifying dependencies in the Cargo docs.