2011-12-24 11 views
1

opensslに存在するEC_KEY_new_by_curve_name(NID_secp256k1)関数を使用しようとしています。しかし、私は、コンパイル時に、私は次のエラーを取得:xcodeを使用したOpenSSL ecc機能?

undefined symbols for architecture x86_64: 
    "_EC_KEY_new_by_curve_name", referenced from: 
     CKey::CKey() in bitcoin.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

を私はMacOSのはOpenSSLがECCの拡張子を指定してコンパイルされていないことを示唆しています。問題ですか?もしそうなら、私はそれをどのように修正するのですか?

答えて

1

あなたはMacOSのSDKに付属しているOpenSSLライブラリを使用している場合、それは自動的に建てられた64ビットのサポートを持っている必要があります。

the first hit on Googleを見るとあなただけの正しいを含めていない場合、私は思ったんだけどライブラリをXCodeプロジェクトに追加します。 -lcryptoをプロジェクト設定に入れましたか、プロジェクトのライブラリリストにlibCrypto.dylibを追加することを忘れましたか?私のSnowLeopard(10.6)マシンで

は、私はシンボルがlibCryptoで定義されている参照してください。

[/usr/lib]:; nm -arch x86_64 libcrypto.0.9.8.dylib | egrep -i new_by_curve 
00000000000a4ac0 T _EC_GROUP_new_by_curve_name 
00000000000ab540 T _EC_KEY_new_by_curve_name 
+0

感謝:-L /それが働いていた "その他のリンカフラグを設定構築" するUSR/libに-lcryptoを追加しました。 –

関連する問題