我正在尝试使用 rust-http 库,并且我想将其用作小项目的基础。
我不知道如何使用无法通过
rustpkg install <remote_url>
安装的东西。事实上,我今天发现 rustpkg
现已被弃用。
如果我
git clone
库并运行适当的make
命令来构建它,我如何在其他地方使用它? IE。我该如何实际使用extern crate http
?
自 Rust 1.0 以来,99% 的用户将使用 Cargo 来管理项目的依赖项。该文档的 TL;DR 是:
使用
cargo new
创建项目
编辑生成的
Cargo.toml
文件以添加依赖项:
[dependencies]
old-http = "0.1.0-pre"
在代码中访问板条箱:
Rust 2021 和 2018
use old_http::SomeType;
生锈 2015
extern crate old_http;
use old_http::SomeType;
使用
cargo build
构建项目
Cargo 将负责管理版本,在需要时构建依赖项,并将正确的参数传递给编译器以将所有依赖项链接在一起。
阅读 Rust 编程语言,了解有关 Cargo 入门的更多详细信息。 Cargo 书中的指定依赖项详细介绍了您可以添加哪些类型的依赖项。
与您的帖子无关,但与您的标题相关。另外,以货物为基础。
最佳实践:
foo
use ::foo;
foo
use crate::foo;
在这两种情况下,您都可以使用
use foo;
代替,但这可能会导致混乱。
构建完成后,您可以在代码中使用普通的
extern crate http;
。唯一的技巧是您需要将适当的 -L
标志传递给 rustc
来告诉它在哪里可以找到 libhttp
。
如果您的项目中的
rust-http
目录中有一个子模块,并且它构建到其根目录中(我实际上不知道 make
中的 rust-http
存放生成的库),那么您可以构建自己的子模块使用 rustc -L rust-http pkg.rs
进行项目。使用该 -L
标志,extern crate http;
中的 pkg.rs
行将能够在 libhttp
子文件夹中找到 rust-http
。
我遇到了类似的问题。我最终在我的 Cargo.toml 中这样做了
[dependencies]
shell = { git = "https://github.com/google/rust-shell" }
然后在我的 main.rs 中我可以添加它并成功编译。 请注意,在我的例子中,这个货物包是一个宏。通常你不希望在外部调用之前有#[macro_use]。
#[macro_use] extern crate shell;