使用macos xcode的OpenSSL ecc功能?

时间:2011-12-24 08:43:11

标签: c xcode macos openssl

我正在尝试使用openssl中存在的函数EC_KEY_new_by_curve_name(NID_secp256k1)。但是,当我编译时,我收到以下错误:

    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 个答案:

答案 0 :(得分: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