我试图让基本的reqwest
http请求像这样
extern crate reqwest;
extern crate url;
use url::Url;
fn main() {
let resp = reqwest::get("http://google.com".parse::<Url>().unwrap());
println!("{:?}", resp.unwrap())
}
但是,这会产生错误
找不到OpenSSL安装目录,并且此
-sys
条板箱无法找到 没有这些知识就继续进行。如果已安装OpenSSL且此板条箱具有 找不到它,您可以为OPENSSL_DIR
环境变量设置 编译过程。确保您还安装了openssl开发包。 例如,在Ubuntu上为
libssl-dev
,在Fedora上为openssl-devel
。...
嗯,这很容易修复。一次呼叫sudo apt install libssl-dev
和sudo apt install pkg-config
,它正在工作。但是我仍然不明白这里到底出了什么问题。我以为cargo
应该照顾依赖性。为什么现在我用apt
手动搜寻它们?
答案 0 :(得分:2)
reqwest
depends on rust-native-tls
,其中on Linux depends on openssl-sys
,即where this message comes from。
因此cargo
做到了自己的工作,照顾了Rust的依赖性。
但是,openssl-sys
依赖于C库(OpenSSL),此时cargo
会停止运行。