Как скомпилировать проект ржавчины с openssl? - PullRequest
0 голосов
/ 20 февраля 2019

Мой проект написан на 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-dev) для Ubuntu 16.04.
  2. gRPC_PROTOBUF_PROVIDER is "module" but PROTOBUF_ROOT_DIR is wrong.

Как это исправить? В этом сообщении говорится, что я должен полностью избегать OpenSSL.А вот еще один пост о кросс-компиляции с OpenSSL.

1 Ответ

0 голосов
/ 17 мая 2019

Вы не можете кросс-компилировать вашу программу ржавчины с каждой функцией Openssl , потому что некоторая версия OpenSSL не поддерживает (функция как Vendored), которая помогает для кросс-компиляции.Таким образом, вы можете использовать ту версию OpenSSL, которая поддерживает эту функцию.например openssl = {version = "0.10", features = ["vendored"]}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...