Подтвердить что ты не робот

Фатальная ошибка: файл 'openssl/bio.h' не найден

Я пытаюсь установить Apache Thrift на моем Mac, но я попал в проблему. Я выполнил шаги установки на этой странице, но когда я пытаюсь выполнить шаги для установки libevent, при запуске команды make появляется следующая ошибка:

фатальная ошибка из-за файла 'openssl/bio.h' не найдена

Снимок экрана с фактической ошибкой

Я проверил версию openSSL, которую я использую, и это "0.9.8zg"

Любые советы о том, что я должен сделать, чтобы исправить это?

4b9b3361

Ответ 1

Я на El Capitan 10.11.6, и у меня возникла проблема при установке вручную расширения php mongodb.

Я решил это по показаниям @user7059092 о стадии настройки:

$./configure LDFLAGS='-L/usr/local/opt/openssl/lib' CPPFLAGS='-I/usr/local/opt/openssl/include'

Ответ 2

У меня такая же проблема при установке Thrift, как и у других. В моем случае я решаю следующий следующий Jira:

https://jira.mongodb.org/browse/CDRIVER-941

Другой подход заключается в том, что после "brew install openssl" сделать ссылку "/usr/local/include/openssl.

$ brew install openssl 
$ brew link openssl --force

По какой-то причине Homebrew собственный pkg-config знает, что OpenSSL является homebrewed только после запуска link openssl -force ":

$ pkg-config --variable=includedir openssl

/usr/local/Cellar/openssl/1.0.2d_1/include

Ответ 3

Я также столкнулся с этой проблемой при установке apache Thrift и вот как я решил это для моей настройки системы.

Моя операционная система - El Capitan (10.11.1) со всеми последними обновлениями, и я использовал MacPorts для установки openssl (версия 1.0.2e 3 декабря 2015 г.). Это установлено openssl в /opt/local. В любом случае попробуйте найти bio.h (для моего случая было расположено в /opt/local/include/openssl/bio.h), и вы, вероятно, можете указать, где openssl установлен для вашей установки. Когда вы находитесь в папке libevent и запустите:

./configure --help

вы увидите, что

--includedir=DIR        C header files [PREFIX/include]

Так как PREFIX есть /usr/local в соответствии с инструкциями, мне просто нужно создать символическую ссылку в /usr/local/include.

cd /usr/local/include
sudo ln -s /opt/local/include/openssl/ openssl

Теперь make выполняется без ошибок.

Ответ 4

Вы на Эль-Капитане? Это оказалось моей проблемой.

Ответ Джереми на этот вопрос Puma работал у меня:

https://github.com/puma/puma/issues/718

Моя проблема была связана с драгоценным камнем Puma, но ваша проблема может быть аналогичной, если на El Capitan.

Ответ 5

для установки libevent на Mac: http://macappstore.org/libevent/

вынос для этого сайта:

для ошибки openssl:

Самый чистый метод должен заключаться в том, что вы сообщаете компилятору использовать MacOS openssl, устанавливая соответствующие переменные среды.

Вы можете сделать это на этапе настройки:

./настроить CXXFLAGS = '- I/usr/local/bin -L usr/local/include'