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

致命错误:';openssl/bio.h';找不到文件,openssl,thrift,libevent,Openssl,Thrift,Libevent,我试图在我的Mac上安装Apache Thrift,但遇到了一个问题。 我遵循了上的安装步骤,但当我尝试执行安装libevent的步骤时,在运行make命令时出现以下错误: 由于找不到“openssl/bio.h”文件,出现致命错误 我已经检查了我正在使用的openSSL版本,它是“0.9.8zg” 我该怎么做才能解决这个问题?你在El Capitan吗?这似乎是我的问题 杰里米对美洲狮问题的回答对我很有用: 我的问题与Puma gem特别相关,但如果在El Capitan上,您的问题可能类

我试图在我的Mac上安装Apache Thrift,但遇到了一个问题。 我遵循了上的安装步骤,但当我尝试执行安装
libevent
的步骤时,在运行
make
命令时出现以下错误:

由于找不到“openssl/bio.h”文件,出现致命错误

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


我该怎么做才能解决这个问题?你在El Capitan吗?这似乎是我的问题

杰里米对美洲狮问题的回答对我很有用:


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

我在安装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]
由于按照说明,
前缀
/usr/local
,因此我只需在
/usr/local/include
中创建一个符号链接

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

现在
make
执行时没有错误

我和其他人一样安装Thrift时也遇到同样的问题。在我的例子中,我解决了以下问题:

另一种方法是,在“brew安装openssl”之后,执行“brew链接” openssl--force”,它将头安装到 /usr/local/include/openssl.

出于某种原因,自制的pkg配置知道OpenSSL是自制的,只有在您运行“链接OpenSSL--force”时:

$pkg config--variable=includedir-openssl


/usr/local/ceral/openssl/1.0.2d_1/include

用于在Mac上安装libevent:

本网站的外卖:

  • ruby-e“$(curl-fsSL)”/dev/null
  • brew安装libevent
  • 对于openssl错误:

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

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


    /configure cxflags='-I/usr/local/bin-L usr/local/include'

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

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

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

    我从一个不相关的工作问题上偷了这个提示,它对我来说是一个魅力:

    brew安装openssl@1.1 OPENSSL_ROOT=$(brew--Cell OPENSSL)/$(brew列表--版本OPENSSL | tr'''\n'| tail-1) ./configure“-with openssl=$openssl\u ROOT” ln-s$OPENSSL\u ROOT/include/OPENSSL
    LIBRARY\u PATH=$LIBRARY\u PATH:$OPENSSL\u ROOT/lib make

    Stack Overflow是一个关于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。另请参阅。如果您只是想安装Thrift,为什么不
    brew安装Thrift
    ?谢谢您的帮助,我在EI Capitan上,我按照Jeremy的回答做,但我现在仍然无法工作,错误仍然存在。但我发现我没有类似“/usr/local/opt/openssl”的目录,我只有类似“/usr/local/openssl”的目录,但不管我走哪条路,它对我还是不起作用。你还有别的办法吗?这解决了我的问题,谢谢。具体来说:
    gem install puma--with opt include=/usr/local/opt/openssl/include
    @Lewis Eric-我需要查看更多的错误日志详细信息以获得帮助。很抱歉看起来您已经安装了openssl,但由于某些原因,路径不起作用。@Lewis Eric希望这一问题现在已经解决,但如果没有解决,则
    brew安装openssl
    应该为您提供正确版本的openssl。帮助我的具体评论是。本质上,如果您使用的是
    bundle install
    ,它不一定会读取gem安装的puma,因此您需要为bundle/puma设置全局选项:
    bundle config build.puma--使用opt dir=/usr/local/opt/openssl
    ,非常感谢。我在这个问题上纠缠了一段时间。你的解决方案为我工作,我可以确认,这是工程,同时安装节俭以及。应在制造前完成配置。
    $ brew install openssl 
    $ brew link openssl --force