如何使用openssl交叉编译一个锈项目?

Jam*_*kin 5 cross-compiling rust grpc

我的项目是用Rust(Ubuntu 16.04, CMake 3.5.1)编写的。

以前,它用作grpcio = "0.4.0"中的依赖项Cargo.toml,我可以成功地对其进行交叉编译(即创建静态二进制文件)(使用cross)。但是,在将依赖项更改为grpcio = { version = "0.4.2", features = ["openssl"] }我无法再对其进行交叉编译之后:它说它无法编译grpcio-sys = "0.4.2"并显示一些CMake错误(并且我不能继续使用,0.4.0因为它不支持features=["openssl"]):

  1. 找不到OpenSSL的一些环境标志(即使我安装了sudo apt-get install libssl-devUbuntu 16.04
  2. gRPC_PROTOBUF_PROVIDER is "module" but PROTOBUF_ROOT_DIR is wrong

我该如何解决?这篇文章说我应该完全避免使用OpenSSL。这是关于使用OpenSSL进行交叉编译的另一篇文章

小智 0

您无法使用Openssl的每个功能交叉编译 rust 程序,因为某些版本的 OpenSSL 不支持(功能为 Vendored),这有助于交叉编译。因此您可以使用支持此功能的 OpenSSL 版本。就像 openssl = { version = "0.10", features = ["vendored"] }