Фатальная ошибка: файл 'openssl/bio.h' не найден
Я пытаюсь установить Apache Thrift на моем Mac, но я попал в проблему.
Я выполнил шаги установки на этой странице, но когда я пытаюсь выполнить шаги для установки libevent
, при запуске команды make
появляется следующая ошибка:
фатальная ошибка из-за файла 'openssl/bio.h' не найдена
Снимок экрана с фактической ошибкой
Я проверил версию openSSL, которую я использую, и это "0.9.8zg"
Любые советы о том, что я должен сделать, чтобы исправить это?
Ответы
Ответ 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'