2016-12-31 20 views
3

githubリリースhttps://github.com/openssl/openssl/archive/OpenSSL-fips-2_0_13.tar.gzからopensslをビルドして、手動でコンパイルしようとしています。私は、Mac OSX版10.11.5でこれをコンパイルしようとしています、これは私がopensslでのリンカーとコンパイラのエラー

./Configure darwin64-x86_64-cc 
make 

をとっている一連のステップである。しかし、私はによると、通常、コンパイルするときに私は

bsaes-x86_64.s:580:1: error: invalid symbol redefinition 
_bsaes_enc_key_convert: 

このエラーが出ますINSTALLファイルの場合、おそらくアーカイブファイルが32ビットシステム向けに構築されているため、リンクステップでエラーが発生します。これは、その後、./config

WARNING! If you wish to build 64-bit library, then you have to 
     invoke './Configure darwin64-x86_64-cc' *manually*. 
     You have about 5 seconds to press Ctrl-C to abort. 

と、対応するエラーを実行しているときに./config && makeステップからアーカイブにリンクする際に私が取得警告であり、この

ld: warning: ld: warning: ignoring file openssl/lib/libssl.a, file was 
built for archive which is not the architecture being linked (x86_64): 
openssl/lib/libssl.aignoring file openssl/lib/libcrypto.a, file was built 
for archive which is not the architecture being linked (x86_64): 
openssl/lib/libcrypto.a 

注私はCのためにこれを構築してい ++プロジェクトですCコンパイラを使用してCコードをコンパイルし、C++コンパイラ(または両方のコンパイラが同じリンカを使用しているためld)を使用してコードをリンクします(違いがあるかどうかは分かりません)

誰かが正しくopensslをビルドしてリンクする方法を教えてもらえますか?

+0

*** ***はC++コンパイラでOpenSSLライブラリを構築できません。 Cコンパイラを使用する必要があります。後で、あなたは*** C++コンパイラでユーザプログラムをコンパイルできます。 'KERNEL_BITS = 64 ./config shared no-ssl2 no-ssl3 enable-ec_nistp_64_gcc_128 ...'を実行することもできます。関連する質問は、Stack Overflowに関する[Build Multiarch OpenSSL on OS X](http://stackoverflow.com/q/25530429)です。 OpenSSL wikiの[コンパイルとインストール](https://wiki.openssl.org/index.php/Compilation_and_Installation)も参照してください。 – jww

+0

@jww私はC++コンパイラを使用していたと言っても間違っていました。私はCコンパイラを使用してコードをコンパイルしてから、C++コンパイラとリンクしていました。私は質問を修正する – Curious

答えて

2

./configure中にno-asmオプションを使用してみてください:

$ make clean 
$ ./Configure darwin64-x86_64-cc no-asm 
$ make test 
$ make 
.... 

楕円曲線ルーチンはので、多分それ以外の場合は問題なくビルド/コンパイルする必要があり、そのことについてバグレポートを提出、このバージョンでは壊れているようです。

+0

ありがとう。私はopensslに報告します:https://github.com/openssl/openssl/issues/4860 – gary

関連する問題