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

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

фатальная ошибка из-за того, что файл «openssl/bio.h» не найден

Скриншот реальной ошибки

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

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


person Lewis-Eric    schedule 16.10.2015    source источник
comment
Stack Overflow — это сайт для вопросов по программированию и разработке. Этот вопрос кажется не по теме, потому что он не о программировании или разработке. См. раздел О каких темах я могу задать здесь в Справочном центре. Возможно, Суперпользователь или Apple Stack Exchange лучше спросить. См. также раздел Где размещать вопросы о Dev Ops?.   -  person jww    schedule 19.10.2015
comment
Если вы просто хотите установить Thrift, почему бы и нет brew install thrift ?   -  person Shoham    schedule 06.06.2017


Ответы (6)


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

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

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

person Simon Baudry    schedule 24.10.2016
comment
большое спасибо. Я застрял на этом вопросе на некоторое время. Ваше решение сработало для меня ???????? - person User31; 24.11.2016
comment
Я могу подтвердить, что это работает и при установке бережливости. Конфигурация должна быть выполнена до сборки. - person shridharama; 08.03.2017

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

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

Другой подход заключается в том, чтобы после «brew install openssl» выполнить «brew link openssl --force», который устанавливает заголовки в /usr/local/include/openssl.

$ brew install openssl 
$ brew link openssl --force

По какой-то причине собственный pkg-config Homebrew знает, что OpenSSL является доморощенным только после того, как вы запустите «link openssl --force»:

$ pkg-config --variable=includedir openssl

/usr/local/Подвал/openssl/1.0.2d_1/include

person Franzi    schedule 11.01.2016

Я также столкнулся с этой проблемой при установке 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 выполняется без ошибок.

person Bart Joosten    schedule 15.12.2015

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

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

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

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

person jakeatwork    schedule 16.10.2015
comment
Спасибо за вашу помощь, и я на EI Capitan, я делаю то, что ответил Джереми, но я все еще не могу работать сейчас, ошибка все еще существует. Но я обнаружил, что у меня нет такого каталога, как /usr/local/opt/ openssl, у меня есть только каталог типа /usr/local/openssl, но независимо от того, какой путь я использую, он все равно не работает. У вас есть какое-то другое решение? - person Lewis-Eric; 20.10.2015
comment
Это решило мою проблему, спасибо. В частности: gem install puma -- --with-opt-include=/usr/local/opt/openssl/include - person gdgr; 04.11.2015
comment
@Lewis-Eric - мне нужно увидеть больше деталей журнала ошибок, чтобы помочь. Прости. похоже, что у вас установлен openssl, но по какой-то причине путь не работает. - person jakeatwork; 21.11.2015
comment
@Lewis-Eric, надеюсь, это уже решено, но если нет, brew install openssl должен получить для вас подходящую версию OpenSSL. Мне помог конкретный комментарий: github.com/puma/puma/issues/718. #issuecomment-139624081. По сути, если вы используете bundle install, он не обязательно будет читать puma, установленную gem, поэтому вам нужно установить глобальные параметры для bundle/puma: bundle config build.puma --with-opt-dir=/usr/local/opt/openssl - person jcasner; 25.09.2016

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

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

  1. ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" ‹ /dev/null 2> /dev/null
  2. варить установить libevent

для ошибки openssl:

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

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

./configure CXXFLAGS='-I /usr/local/bin -L usr/local/include'

person user7059092    schedule 23.10.2016

Я украл эту подсказку у [email protected], и она сработала как чудо для меня по несвязанной с работой проблеме:

brew install [email protected] OPENSSL_ROOT=$(brew --cellar openssl)/$(brew list --versions openssl | tr ' ' '\n' | tail -1) ./configure --with-openssl=$OPENSSL_ROOT ln - s $OPENSSL_ROOT/include/openssl openssl LIBRARY_PATH=$LIBRARY_PATH:$OPENSSL_ROOT/lib make

person Paulo Henrique Lellis Gonalves    schedule 16.02.2021