无法编译openssl-sys

时间:2015-01-05 19:21:21

标签: rust rust-cargo

我向Cargo.toml添加了openssl依赖。

[dependencies.openssl]
openssl = "0.2.12"

但是当我尝试构建和执行时,它无法编译该包,因为:

type std::sync::mutex::StaticMutexGuard does not implement any method in scope named unwrap

完整输出:

pablo@boreth:~/pruebas/rust/hello_world$ cargo run --verbose
       Fresh pkg-config v0.1.3
   Compiling openssl-sys v0.2.12
     Running `rustc /home/pablo/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-sys-0.2.12/src/lib.rs --crate-name openssl-sys --crate-type lib -g -C metadata=e45df04b75965aa1 -C extra-filename=-e45df04b75965aa1 --out-dir /home/pablo/pruebas/rust/hello_world/target/deps --emit=dep-info,link -L /home/pablo/pruebas/rust/hello_world/target/deps -L /home/pablo/pruebas/rust/hello_world/target/deps -Awarnings -L native=/usr/lib/x86_64-linux-gnu -l ssl -l crypto`
/home/pablo/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-sys-0.2.12/src/lib.rs:203:54: 203:62 error: type `std::sync::mutex::StaticMutexGuard` does not implement any method in scope named `unwrap`
/home/pablo/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-sys-0.2.12/src/lib.rs:203             (*GUARDS)[n as uint] = Some(mutex.lock().unwrap());
                                                                                                                                                   ^~~~~~~~
/home/pablo/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-sys-0.2.12/src/lib.rs:214:14: 226:11 error: type `std::sync::once::Once` does not implement any method in scope named `call_once`
/home/pablo/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-sys-0.2.12/src/lib.rs:214         INIT.call_once(|| {
/home/pablo/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-sys-0.2.12/src/lib.rs:215             SSL_library_init();
/home/pablo/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-sys-0.2.12/src/lib.rs:216             SSL_load_error_strings();
/home/pablo/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-sys-0.2.12/src/lib.rs:217
/home/pablo/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-sys-0.2.12/src/lib.rs:218             let num_locks = CRYPTO_num_locks();
/home/pablo/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-sys-0.2.12/src/lib.rs:219             let mutexes = box range(0, num_locks).map(|_| MUTEX_INIT).collect::<Vec<_>>();
                                                                                              ...
error: aborting due to 2 previous errors
Could not compile `openssl-sys`.

Caused by:
  Process didn't exit successfully: `rustc /home/pablo/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-sys-0.2.12/src/lib.rs --crate-name openssl-sys --crate-type lib -g -C metadata=e45df04b75965aa1 -C extra-filename=-e45df04b75965aa1 --out-dir /home/pablo/pruebas/rust/hello_world/target/deps --emit=dep-info,link -L /home/pablo/pruebas/rust/hello_world/target/deps -L /home/pablo/pruebas/rust/hello_world/target/deps -Awarnings -L native=/usr/lib/x86_64-linux-gnu -l ssl -l crypto` (status=101)

我正在使用Ubuntu Ubuntu 14.04.1 LTS(Trusty Tahr),我已经安装了libssl-dev。

pablo@boreth:~$ uname -a
Linux boreth 3.13.0-43-generic #72-Ubuntu SMP Mon Dec 8 19:35:06 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
pablo@boreth:~$ dpkg -l libssl-dev
Deseado=Desconocido/Instalar/Eliminar/Purgar/Retener
| Estado=No/Instalado/Config-files/Desempaquetado/Medio-conf/Medio-inst/espera-disparo/pendiente-disparo
|/ Err?=(ninguno)/Requiere-reinst (Estado,Err: mayúsc.=malo)
||/ Nombre                                     Versión                    Arquitectura               Descripción
+++-==========================================-==========================-==========================-=========================================================================================
ii  libssl-dev:amd64                           1.0.1f-1ubuntu2.7          amd64                      Secure Sockets Layer toolkit - development files

rustc和货物版本:

$ rustc -V
rustc 0.13.0-nightly (636663172 2014-12-28 16:21:58 +0000)
$ cargo -V
cargo 0.0.1-pre-nightly (26ac282 2014-12-30 00:13:39 +0000)

有没有人知道解决方案,或者我应该等待更新?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题: 只需更新 rust 并重新编译项目

rustup update