HighSierra上でビルドできない

SoftEther VPN に関するご質問はこのフォーラムにお気軽にご投稿ください。
Post Reply
Tomon613
Posts: 4
Joined: Sat Jun 29, 2019 11:50 pm

HighSierra上でビルドできない

Post by Tomon613 » Sat Jun 29, 2019 11:55 pm

掲題の通り、macOS HighSierraでビルドできません。
ソースはgithubから落としてます。
以下のエラーでmakeが止まります。デフォルトのclangじゃダメってオチですかね?
どなたかご教授願います。

------エラー文-------

Undefined symbols for architecture x86_64:
"_DH_get0_key", referenced from:
_DhNew in Encrypt.o
"_DH_set0_pqg", referenced from:
_DhNew in Encrypt.o
"_EVP_PKEY_get0_RSA", referenced from:
_RsaPublicToBuf in Encrypt.o
_RsaVerifyEx in Encrypt.o
_RsaSignEx in Encrypt.o
_RsaPublicDecrypt in Encrypt.o
_RsaPrivateEncrypt in Encrypt.o
_RsaPrivateDecrypt in Encrypt.o
_RsaPublicEncrypt in Encrypt.o
...
"_HMAC_CTX_free", referenced from:
_Enc_tls1_P_hash in Encrypt.o
_NewMd in Encrypt.o
_FreeMd in Encrypt.o
"_HMAC_CTX_new", referenced from:
_Enc_tls1_P_hash in Encrypt.o
_NewMd in Encrypt.o
"_OPENSSL_init_crypto", referenced from:
_InitCryptLibrary in Encrypt.o
"_OPENSSL_init_ssl", referenced from:
_InitCryptLibrary in Encrypt.o
"_OPENSSL_sk_new_null", referenced from:
_NewExtendedKeyUsageForX509 in Encrypt.o
"_OPENSSL_sk_num", referenced from:
_X509ToX in Encrypt.o
"_OPENSSL_sk_pop_free", referenced from:
_NewExtendedKeyUsageForX509 in Encrypt.o
"_OPENSSL_sk_push", referenced from:
_AddKeyUsageX509 in Encrypt.o
_NewExtendedKeyUsageForX509 in Encrypt.o
"_OPENSSL_sk_value", referenced from:
_X509ToX in Encrypt.o
"_RSA_get0_crt_params", referenced from:
_WriteSecKey in Secure.o
"_RSA_get0_factors", referenced from:
_WriteSecKey in Secure.o
"_RSA_get0_key", referenced from:
_RsaPublicToBuf in Encrypt.o
_WriteSecKey in Secure.o
"_RSA_set0_key", referenced from:
_RsaBinToPublic in Encrypt.o
"_SSL_CTX_set_options", referenced from:
_StartSSLEx in Network.o
_NewSslPipe in Network.o
_NewSSLCtx in Network.o
"_X509_get0_notAfter", referenced from:
_LoadXDates in Encrypt.o
"_X509_get0_notBefore", referenced from:
_LoadXDates in Encrypt.o
"_X509_getm_notAfter", referenced from:
_NewX509 in Encrypt.o
_NewRootX509 in Encrypt.o
"_X509_getm_notBefore", referenced from:
_NewX509 in Encrypt.o
_NewRootX509 in Encrypt.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [tmp/hamcorebuilder] Error 1

cedar
Site Admin
Posts: 2070
Joined: Sat Mar 09, 2013 5:37 am

Re: HighSierra上でビルドできない

Post by cedar » Mon Jul 01, 2019 10:23 am

エラーメッセージからすると、OpenSSL 関連のシンボルが見つからないというエラーのようです。
OpenSSL の開発版がインストールされているか確認してみてください。

Tomon613
Posts: 4
Joined: Sat Jun 29, 2019 11:50 pm

Re: HighSierra上でビルドできない

Post by Tomon613 » Wed Jul 03, 2019 12:42 pm

ご助言ありがとうございます。
しかし、HighSierraにはopensslデフォルトでインストールされています。
私もopensslが怪しいかと思い、gitのopensslレポジトリからインストールしましたが全く同じエラーが返されます。
もちろんパスも通っています。

cedar
Site Admin
Posts: 2070
Joined: Sat Mar 09, 2013 5:37 am

Re: HighSierra上でビルドできない

Post by cedar » Thu Jul 04, 2019 9:22 am

ビルドしようとしているのは、バイナリで配布されているフリー版でしょうか、それともソースコードで配布されているオープンソース版でしょうか。

Tomon613
Posts: 4
Joined: Sat Jun 29, 2019 11:50 pm

Re: HighSierra上でビルドできない

Post by Tomon613 » Thu Jul 04, 2019 11:36 am

先に述べた通りgitからソースコードを取得しています。

cedar
Site Admin
Posts: 2070
Joined: Sat Mar 09, 2013 5:37 am

Re: HighSierra上でビルドできない

Post by cedar » Fri Jul 05, 2019 9:44 am

ソースコードからコンパイルする場合には、OpenSSL のライブラリは配布パッケージに含まれていません。
インストールされた OpenSSL のライブラリはリンクの対象に含まれているでしょうか?
ライブラリパスが正しく設定されていないようであれば、コマンドラインでフルパスを指定してみたほうが良いかもしれません。

Tomon613
Posts: 4
Joined: Sat Jun 29, 2019 11:50 pm

Re: HighSierra上でビルドできない

Post by Tomon613 » Sat Jul 06, 2019 12:50 am

返信ありがとうございます。
macOSでは/usr/local/libにsslライブラリがインストールされていますが、このディレクトリをわざわざフルパス指定しないといけないのですか?
ちなみにフルパス指定しても同様のエラーを吐いてmakeできませんでした(bash_profileに「export LDFLAGS="-L/usr/local/lib"を追記)。

ところでopenssl(git)の再インストールを試みてログを追ってみたところ、
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: /usr/local/lib/libssl.a.new(libssl-lib-ssl_utst.o) has no symbols"
の一文をみつけました。
opensslはシンボルを作らない仕様になってるらしいのですが、無理やり作らないといけないですかね…?

cedar
Site Admin
Posts: 2070
Joined: Sat Mar 09, 2013 5:37 am

Re: HighSierra上でビルドできない

Post by cedar » Sat Jul 06, 2019 1:14 am

SoftEther VPN からは API として公開していないシンボルは参照していないので、内部シンボルについては削除されていても問題ないと思います。

Tomon613
Posts: 4
Joined: Sat Jun 29, 2019 11:50 pm

Re: HighSierra上でビルドできない

Post by Tomon613 » Fri Jul 12, 2019 10:47 pm

自己解決しました。
Cmakeを導入したら成功しました。
はじめに書いたようにデフォルトのclangじゃダメてオチみたいですね。

Post Reply