HighSierra上でビルドできない
- 
				Tomon613
 - Posts: 4
 - Joined: Sat Jun 29, 2019 11:50 pm
 
HighSierra上でビルドできない
掲題の通り、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
			
									
									
						ソースは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: 2308
 - Joined: Sat Mar 09, 2013 5:37 am
 
Re: HighSierra上でビルドできない
エラーメッセージからすると、OpenSSL 関連のシンボルが見つからないというエラーのようです。
OpenSSL の開発版がインストールされているか確認してみてください。
			
									
									
						OpenSSL の開発版がインストールされているか確認してみてください。
- 
				Tomon613
 - Posts: 4
 - Joined: Sat Jun 29, 2019 11:50 pm
 
Re: HighSierra上でビルドできない
ご助言ありがとうございます。
しかし、HighSierraにはopensslデフォルトでインストールされています。
私もopensslが怪しいかと思い、gitのopensslレポジトリからインストールしましたが全く同じエラーが返されます。
もちろんパスも通っています。
			
									
									
						しかし、HighSierraにはopensslデフォルトでインストールされています。
私もopensslが怪しいかと思い、gitのopensslレポジトリからインストールしましたが全く同じエラーが返されます。
もちろんパスも通っています。
- 
				cedar
 - Site Admin
 - Posts: 2308
 - Joined: Sat Mar 09, 2013 5:37 am
 
Re: HighSierra上でビルドできない
ビルドしようとしているのは、バイナリで配布されているフリー版でしょうか、それともソースコードで配布されているオープンソース版でしょうか。
			
									
									
						- 
				Tomon613
 - Posts: 4
 - Joined: Sat Jun 29, 2019 11:50 pm
 
Re: HighSierra上でビルドできない
先に述べた通りgitからソースコードを取得しています。
			
									
									
						- 
				cedar
 - Site Admin
 - Posts: 2308
 - Joined: Sat Mar 09, 2013 5:37 am
 
Re: HighSierra上でビルドできない
ソースコードからコンパイルする場合には、OpenSSL のライブラリは配布パッケージに含まれていません。
インストールされた OpenSSL のライブラリはリンクの対象に含まれているでしょうか?
ライブラリパスが正しく設定されていないようであれば、コマンドラインでフルパスを指定してみたほうが良いかもしれません。
			
									
									
						インストールされた OpenSSL のライブラリはリンクの対象に含まれているでしょうか?
ライブラリパスが正しく設定されていないようであれば、コマンドラインでフルパスを指定してみたほうが良いかもしれません。
- 
				Tomon613
 - Posts: 4
 - Joined: Sat Jun 29, 2019 11:50 pm
 
Re: HighSierra上でビルドできない
返信ありがとうございます。
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はシンボルを作らない仕様になってるらしいのですが、無理やり作らないといけないですかね…?
			
									
									
						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: 2308
 - Joined: Sat Mar 09, 2013 5:37 am
 
Re: HighSierra上でビルドできない
SoftEther VPN からは API として公開していないシンボルは参照していないので、内部シンボルについては削除されていても問題ないと思います。
			
									
									
						- 
				Tomon613
 - Posts: 4
 - Joined: Sat Jun 29, 2019 11:50 pm
 
Re: HighSierra上でビルドできない
自己解決しました。
Cmakeを導入したら成功しました。
はじめに書いたようにデフォルトのclangじゃダメてオチみたいですね。
			
									
									
						Cmakeを導入したら成功しました。
はじめに書いたようにデフォルトのclangじゃダメてオチみたいですね。
