Учебник Rust Nickel Hello World выдает ошибку зависимости при запуске

Я изучаю Rust и вчера увидел пост на http://reddit.com/r/rust для Никеля. Как разработчик Node.js в свое свободное время, я был заинтересован в проверке этого.

Я скачал Rust 1.0.0-бета DMG с http://rust-lang.org/.

Я точно следовал учебнику Hello World, и когда я выполняю cargo run в моем терминале я получаю следующую ошибку:

Robs-MacBook-Pro:nickel-demo rob$ cargo run
   Compiling nickel-demo v0.0.1 (file:///Users/rob/Workbench/nickel-demo)
src/main.rs:4:1: 4:21 error: an external crate named `nickel` has already been imported into this module [E0259]
src/main.rs:4 extern crate nickel;
              ^~~~~~~~~~~~~~~~~~~~
error: aborting due to previous error
Could not compile `nickel-demo`.

Привет Мир main.rs файл для Nickel Demo выглядит так:

extern crate nickel;

#[macro_use] extern crate nickel_macros;
extern crate nickel;

use nickel::Nickel;

fn main() {
    let mut server = Nickel::new();

    server.utilize(router! {
        get "**" => |_req, _res| {
            "Hello world!"
        }
    });

    server.listen("127.0.0.1:6767");
}

Когда я печатал этот код в своем редакторе, я определенно думал, что это странно, что я объявляю extern crate nickel; дважды в файле. После получения ошибки я изменил код на это:

extern crate nickel;

#[macro_use] extern crate nickel_macros;

use nickel::Nickel;

...

И я получаю эту ошибку:

Robs-MacBook-Pro:nickel-demo rob$ cargo run
   Compiling nickel-demo v0.0.1 (file:///Users/rob/Workbench/nickel-demo)
     Running `target/debug/nickel-demo`
Listening on http://127.0.0.1:6767
Ctrl-C to shutdown server
thread '<main>' panicked at 'arithmetic operation overflowed', /Users/rob/.cargo/registry/src/github.com-1ecc6299db9ec823/hyper-0.3.11/src/server/mod.rs:90
An unknown error occurred

1 ответ

Решение

arithmetic operation overflowed ошибка, кажется, является основной проблемой. Это также влияет на гипер, от которого зависит никель.

См. https://github.com/seanmonstar/num_cpus/issues/2

В качестве временного решения проблемы cargo build --release чтобы предотвратить проверки в целом.

Другие вопросы по тегам