【Mac OSX】opensslを自分でコンパイルする

checking openssl/opensslv.h usability... no
checking openssl/opensslv.h presence... no
checking for openssl/opensslv.h... no

configure: error: *** OpenSSL headers missing - please install first or check config.log ***

まず、MacOSX で openSSLをコンパイルしようとしたところ...opensslのヘッダが検出出来ない!
(brew install openssl でインストール済み)

> brew link openssl

Warning: Refusing to link macOS-provided software: openssl@1.1
If you need to have openssl@1.1 first in your PATH run:
    echo 'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"' >> ~/.bash_profile

For compilers to find openssl@1.1 you may need to set:
    export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
    export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"

For pkg-config to find openssl@1.1 you may need to set:
    export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig"

 brew link openssl を実行するとアドバイスが得られた。

export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"

これを実行してもちょっとおかしいので

export LDFLAGS="-L/usr/local/opt/openssl/lib" 
export CPPFLAGS="-I/usr/local/opt/openssl/include" 

これを実行して見た

checking OpenSSL header version... 1010104f (OpenSSL 1.1.1d 10 Sep 2019)
checking OpenSSL library version... 1010104f (OpenSSL 1.1.1d 10 Sep 2019)
checking whether OpenSSL's headers match the library... yes
checking if programs using OpenSSL functions will link... no
checking if programs using OpenSSL need -ldl... no
checking for BN_is_prime_ex... yes
checking for DSA_generate_parameters_ex... yes
checking for EVP_DigestInit_ex... yes
checking for EVP_DigestFinal_ex... yes
checking for EVP_MD_CTX_init... no
checking for EVP_MD_CTX_cleanup... no
checking for EVP_MD_CTX_copy_ex... yes

今度はうまくいった。
 
ところが
OpenSSL Error , when installing on MAC ・ Issue #53 ・ rdesktop/rdesktop ・ GitHub
これと同じ障害が出てopenssh 1をコンパイルできない

原因は openssl 1.1.x 系の不具合らしいので 1.0.2t をコンパイルすることにした
結局、brew install で入る 1.1.1系の openssl は使用しなかった

sudo make install した後に、LDFLAGS と CPPFLAGS をクリアして再度 ./configure
今度はうまくいった(・ω・) 
 

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です