2015-04-26 43 views
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" 

然而,當我試圖生成使用貨運運行它,我得到以下錯誤:

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` 

我看遍這些不同的包裝箱試圖查看是否可以將「rustc-serialize」更改爲「rustc_serialize」,因爲我認爲箱子名稱不能再有連字符。但是,我找不到這樣的事情。我真的希望能夠解決這個問題,因爲我有一種感覺,當Rust仍在被拋光時,我會多次遇到這個錯誤。

編輯:版本如下: 防鏽:1.0.0-beta.2 超:0.3.14 貨:0.0.1-預夜間(建2015年3月9日)

+2

請包含相關的版本號,例如rustc和Cargo。沒有這些,就不可能提供任何具體的建議。 – BurntSushi5

+1

您能否在貨運版本號中加入日期? – huon

回答

4

您的Hyper版本似乎需要更新版本的Rust,它會自動將連字符轉換爲箱子名稱中的下劃線。

請參閱RFC 940Issue #23533

+0

所以我應該能夠指定一箇舊版本的hyper,並讓這個問題消失?有沒有一種方法可以確定一個箱子的期望版本?附:謝謝你的快速反應。 – bipvanwinkle

+1

理論上,這可能會起作用。沒有直接提及生產這些木箱的生鏽問題。不過,您可能會在git commit歷史記錄或Github頁面的問題中發現一些內容。 (順便說一下,昨天有一個新的測試版發佈。) – Pascal

相關問題