致命错误:找不到'openssl / bio.h'文件

时间:2015-10-16 07:49:25

标签: openssl thrift libevent

我正在尝试在我的Mac上安装Apache Thrift,但我遇到了一个问题。 我按照this page上的安装步骤进行操作,但是当我尝试执行安装libevent的步骤时,运行make命令时出现以下错误:

  由于找不到'openssl / bio.h'文件,导致致命错误

Screenshot of actual error

我已经检查过我正在使用的openSSL版本,它是“0.9.8zg”

关于我应该采取什么措施来解决这个问题?

6 个答案:

答案 0 :(得分:41)

我在El Capitan 10.11.6上,我在手动安装mongodb php扩展时遇到了问题。

我按照@ user7059092关于配置阶段的指示解决了这个问题:

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

答案 1 :(得分:18)

我和其他人一样安装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
  

出于某种原因,只有在您运行“ link openssl --force ”后, Homebrew自己的pkg-config才知道OpenSSL是自制的

$ pkg-config --variable=includedir openssl

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

答案 2 :(得分:6)

在安装apache Thrift时我也遇到了这个问题,这就是我为系统设置解决的问题。

我的操作系统是El Capitan(10.11.1),安装了所有最新更新,我使用MacPorts安装openssl(版本1.0.2e 2015年12月3日)。这在/opt/local中安装了openssl。在任何情况下,请尝试查找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执行没有错误。

答案 3 :(得分:3)

你在El Capitan吗?这似乎是我的问题。

Jeremy对这个Puma问题的回答对我有用:

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

我的问题特别与Puma gem有关,但如果在El Capitan上你的问题可能类似。

答案 4 :(得分:1)

在Mac上安装libevent:http://macappstore.org/libevent/

该网站的外卖:

  1. ruby​​ -e" $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < / dev / null 2>的/ dev / null的
  2. brew install libevent
  3. 表示openssl错误:

    最干净的方法应该是通过设置相应的环境变量告诉编译器使用MacOS的openssl。

    您可以在配置阶段执行此操作:

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

答案 5 :(得分:0)

我从 Rasmus@netflix.dynomite.build 那里窃取了这个提示,它对我来说是一个不相关的工作问题的魅力:

brew install openssl@1.1 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 制作