MacにApache Thriftをインストールしようとしていますが、問題が発生しています。 このページ でインストール手順を実行しましたが、libevent
をインストールする手順を実行しようとすると、make
コマンドを実行すると次のエラーが発生します。
「openssl/bio.h」ファイルが見つからないための致命的なエラー
使用しているopenSSLのバージョンを確認しましたが、「0.9.8zg」です
これを修正するために私がすべきことに関するアドバイスはありますか?
私はEl Capitan 10.11.6を使用していますが、mongodb php拡張を手動でインストールするときに問題が発生しました。
Configureステージに関する@ user7059092の指示に従って解決しました。
$./configure LDFLAGS='-L/usr/local/opt/openssl/lib' CPPFLAGS='-I/usr/local/opt/openssl/include'
他の人と同じように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
また、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
がエラーなしで実行されます。
エルキャピタンにいますか?それが私の問題のようです。
このプーマ問題に関するジェレミーの答えは私のために働いた:
https://github.com/puma/puma/issues/718
私の問題は、特にPuma gemに関連していましたが、El Capitanの場合は同様の問題かもしれません。
libeventをMacにインストールする場合: http://macappstore.org/libevent/
このサイトの要点:
opensslエラーの場合:
最もクリーンな方法は、対応する環境変数を設定して、MacOSのopensslを使用するようコンパイラーに指示することです。
これは、構成段階で実行できます。
./configure CXXFLAGS = '-I/usr/local/bin -L usr/local/include'