Почему для reqwest требуется установка OpenSSL?

Я пытался получить элементарный 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. Например, libssl-dev на Ubuntu или openssl-devel на федоре.

...

Ну, это было достаточно легко исправить. Один звонок sudo apt install libssl-dev а также sudo apt install pkg-config и это работает. Но я до сих пор не понимаю, что именно пошло не так. я думал cargo должен был заботиться о зависимостях. Почему я теперь охотюсь на них вручную с apt?

1 ответ

reqwest зависит отrust-native-tls, который от Linux зависит отopenssl-sys, откуда это сообщение. Так cargo сделал свою работу, заботясь о зависимостях Rust.

Тем не мение, openssl-sys зависит от библиотеки C (OpenSSL), в какой момент cargo перестает заботиться

Другие вопросы по тегам