3

我正在尝试运行 Github 自述文件中列出的超级示例。

extern crate hyper;

use std::io::Write;

use hyper::Server;
use hyper::server::Request;
use hyper::server::Response;
use hyper::net::Fresh;

fn hello(_: Request, res: Response<Fresh>) {
    let mut res = res.start().unwrap();
    res.write_all(b"Hello World!").unwrap();
    res.end().unwrap();
}

fn main() {
    Server::http(hello).listen("127.0.0.1:3000").unwrap();
}

Cargo.toml 看起来像这样:

[package]

name = <crate_name>
version = <version>
authors = <authors>

[dependencies]
hyper = "0.3"

但是,当我尝试使用 Cargo run 构建它时,出现以下错误:

error: invalid character `-` in crate name: `build-script-build`
error: invalid character `-` in crate name: `pkg-config`
error: invalid character `-` in crate name: `rustc-serialize`

我查看了这些不同的 crate,想看看是否可以将“rustc-serialize”更改为“rustc_serialize”,因为我认为 crate 名称不能再有连字符。但是,我找不到任何类似的东西。我真的很想能够解决这个问题,因为我有一种感觉,在 Rust 仍在打磨的时候,我会再遇到几次这个错误。

编辑:版本如下:Rust:1.0.0-beta.2 Hyper:0.3.14 Cargo:0.0.1-pre-nightly(建于 2015-03-09)

4

1 回答 1

4

您的 Hyper 版本似乎需要更新版本的 Rust,它会自动将板条箱名称中的连字符转换为下划线。

请参阅RFC 940问题 #23533

于 2015-04-26T09:59:45.540 回答