web-dev-qa-db-ja.com

致命的なエラー: 'openssl / bio.h'ファイルが見つかりません

MacにApache Thriftをインストールしようとしていますが、問題が発生しています。 このページ でインストール手順を実行しましたが、libeventをインストールする手順を実行しようとすると、makeコマンドを実行すると次のエラーが発生します。

「openssl/bio.h」ファイルが見つからないための致命的なエラー

実際のエラーのスクリーンショット

使用しているopenSSLのバージョンを確認しましたが、「0.9.8zg」です

これを修正するために私がすべきことに関するアドバイスはありますか?

29
Lewis-Eric

私はEl Capitan 10.11.6を使用していますが、mongodb php拡張を手動でインストールするときに問題が発生しました。

Configureステージに関する@ user7059092の指示に従って解決しました。

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

41
Simon Baudry

他の人と同じように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

何らかの理由で、Homebrew自身のpkg-configは、OpenSSLがhomebrewedであることを知っているのは、「link openssl- force ":

$ pkg-config --variable=includedir openssl

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

19
Franzi

また、Apache Thriftをインストールするときにこの問題に遭遇しましたが、ここでシステムセットアップでどのように解決したかを示します。

私のオペレーティングシステムはEl Capitan(10.11.1)であり、すべての最新の更新プログラムがインストールされており、MacPortsを使用してopensslをインストールしました(バージョン1.0.2e 3 Dec 2015)。これにより、/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がエラーなしで実行されます。

6
Bart Joosten

エルキャピタンにいますか?それが私の問題のようです。

このプーマ問題に関するジェレミーの答えは私のために働いた:

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

私の問題は、特にPuma gemに関連していましたが、El Capitanの場合は同様の問題かもしれません。

3
jakeatwork

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'

1
user7059092