openssl: relocation error: openssl: symbol EVP_mdc2 version OPENSSL_1_1_0 not defined in file libcry

博客主要讲述编译openssl后运行时出现'relocation error'的问题,具体为'symbol EVP_mdc2 version OPENSSL_1_1_0 not defined'。解决办法是在/etc/ld.so.conf.d/libc.conf文件中添加一行/usr/lib,然后运行ldconfig命令。

问题:

编译openssl后,运行openssl遇到了这个错误

bin/openssl: relocation error: bin/openssl: symbol EVP_mdc2 version OPENSSL_1_1_0 not defined in file libcrypto.so.1.1 with link time reference

解决:

1. 在/etc/ld.so.conf.d/libc.conf 文件中添加一行/usr/lib

2. 运行ldconfig命令

 

 

 

 

 

参考链接:

https://github.com/openssl/openssl/issues/11227

 

OpenSSL 在某些版本中可能会出现符号未定义的错误,例如 `symbol EVP_mdc2 version OPENSSL_1_1_0 not defined in file libcrypto.so.1.1`,这通常是因为动态链接库版本不兼容或编译安装过程中某些配置缺失所导致的。 ### 错误原因 - `EVP_mdc2` 是 MDC-2 哈希算法的实现,属于 OpenSSL 的一部分,但在某些版本(如 OpenSSL 1.1.1)中默认可能被禁用或未正确链接。 - 动态链接器加载了错误版本的 `libcrypto.so.1.1`,导致符号找不到[^3]。 ### 解决方案 #### 方法一:重新编译安装 OpenSSL 并启用相关特性 重新配置 OpenSSL 的编译选项,确保启用了必要的算法和兼容性支持。可以使用以下命令: ```bash ./config --prefix=/usr/local --openssldir=/etc/ssl --libdir=lib enable-ssl3 enable-ssl3-method enable-weak-ssl-ciphers -DOPENSSL_NO_GOST make make install ldconfig ``` - `enable-ssl3` 和 `enable-ssl3-method` 用于启用旧版 SSLv3 支持。 - `enable-weak-ssl-ciphers` 允许使用较弱的加密套件,适用于旧系统兼容性需求。 - `-DOPENSSL_NO_GOST` 是为了禁用 GOST 算法,避免潜在的冲突[^2]。 #### 方法二:检查动态链接库路径 使用 `ldd` 命令检查当前 `openssl` 可执行文件链接的库路径: ```bash ldd $(which openssl) ``` - 如果发现链接到了系统自带的旧版本 OpenSSL 库(如 `/lib/x86_64-linux-gnu/libcrypto.so.1.1`),则需要修改 `LD_LIBRARY_PATH` 环境变量,确保优先加载新安装的 OpenSSL 库: ```bash export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH ``` - 或者通过 `/etc/ld.so.conf` 添加 `/usr/local/lib` 并执行 `ldconfig` 重新加载配置[^3]。 #### 方法三:使用静态链接(可选) 如果动态链接始终存在问题,可以考虑在编译时使用静态链接方式,避免运行时依赖外部库: ```bash ./config --static make make install ``` 这将生成静态版本的 `openssl` 可执行文件,减少运行时的依赖问题。 --- ###
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值