转载请注明出处,原文链接:http://blog.csdn.net/zhongruixian/article/details/21076405
两个多月前写过一篇关于这个问题的文章:Erlang的crypto模块与最新的openssl动态链接库不兼容的问题与解决方案
由于写得比较简略,很多同学还是很纠结这个问题,所以在此补充一下具体的操作过程,希望对同学们有帮助!Eshell V5.10.3 (abort with ^G) 1> crypto:start(). ** exception error: undefined function crypto:start/0 2> =ERROR REPORT==== 12-Mar-2014::17:09:15 === Unable to load crypto library. Failed with error: "load_failed, Failed to load NIF library: ‘/usr/local/lib/erlang/lib/crypto-3.1/priv/lib/crypto.so: undefined symbol: EC_GROUP_new_curve_GF2m‘" OpenSSL might not be installed on this system. =ERROR REPORT==== 12-Mar-2014::17:09:15 === The on_load function for module crypto returned {error, {load_failed, "Failed to load NIF library: ‘/usr/local/lib/erlang/lib/crypto-3.1/priv/lib/crypto.so: undefined symbol: EC_GROUP_new_curve_GF2m‘"}}
解决办法:
vim Makefile
CC= gcc CFLAG= -fPIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
Eshell V5.10.3 (abort with ^G) 1> crypto:start(). ok 2>
很多同学根据我上一篇文章重装后仍然失败的原因,常见的有如下几个:
1、加-fPIC参数重装openssl后,不明确新编译出来的静态库libcrypto.a在哪里,如果以前有安装过的,不明确是否被覆盖;再说Erlang安装时加载openssl的libcrypto.a失败,执行crypto:start()报错的解决方案,布布扣,bubuko.com
再说Erlang安装时加载openssl的libcrypto.a失败,执行crypto:start()报错的解决方案
原文:http://blog.csdn.net/zhongruixian/article/details/21076405