我正在尝试使用 Github 上 crates 中的一些 Rust 库。这是我第一次尝试这样做。从“html”库示例中提取的代码如下所示:
mod interactive_test {
extern crate http;
extern crate url;
use std::os;
use std::str;
use url::Url;
use http::client::RequestWriter;
use http::method::Get;
use http::headers::HeaderEnum;
// ...
}
fn main() {}
错误如下所示:
error[E0432]: unresolved import `url::Url`
--> src/main.rs:7:9
|
7 | use url::Url;
| ^^^^^^^^ Did you mean `self::url`?
error[E0432]: unresolved import `http::client::RequestWriter`
--> src/main.rs:9:9
|
9 | use http::client::RequestWriter;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Did you mean `interactive_test::http`?
error[E0432]: unresolved import `http::method::Get`
--> src/main.rs:10:9
|
10 | use http::method::Get;
| ^^^^^^^^^^^^^^^^^ Did you mean `self::http::method`?
error[E0432]: unresolved import `http::headers::HeaderEnum`
--> src/main.rs:11:9
|
11 | use http::headers::HeaderEnum;
| ^^^^^^^^^^^^^^^^^^^^^^^^^ Did you mean `interactive_test::http`?
该Cargo.toml
文件包含
[dependencies.http]
http = "https://github.com/chris-morgan/rust-http"
[dependencies.url]
url = "0.2.7"
并且 HTTP 和 URL 包是cargo build
之前找到并获取的。
和extern crate http
行extern crate url
不会产生错误;编译器正在找到这些板条箱,但这些板条箱似乎不包含预期的符号。如果我添加“extern crate foo”,我会收到一个错误,因此会被选中。
这可能是 Rust 或 Cargo 搜索库的一些问题。Rust 安装在 中~/local
,而不是以 root 身份安装,通过--prefix
在安装期间设置参数来完成。这可能破坏了某些东西,尽管 Cargo 应该处理这个问题。像“hello_world”这样的基本东西可以正常工作;没有引入外部库。
我注意到这cargo update
不会导致从 Github 重新获取 http 和 url crate。文档表明它应该。
版本:
- Ubuntu 14.04 LTS。
- rustc 0.13.0-nightly (96a3c7c6a 2014-12-23 22:21:10 +0000)
- 货物 0.0.1-pre-nightly (e11c317 2014-12-21 20:43:45 +0000)