在我的SSL客户端代码中,在尝试编译时,使用TLSv1_1_client_method()
时出现未定义的引用错误。如果我没有TLS方法,那么链接就可以了。在二进制文件上运行ldd
时,我看到:
%ldd client_sim_ssl libssl.so.10 => /usr/lib64/libssl.so.10 libcrypto.so.10 => /usr/lib64/libcrypto.so.10
现在,如果我检查nm
/usr/lib64/libssl.so.10
:
%nm /usr/lib64/libssl.so.10 | grep TLSv1_1_client_method 0000000000030d30 T TLSv1_1_client_method
安装了OpenSSL版本:OpenSSL 1.0.1g 7 Apr 2014
为什么链接到的库有未定义的引用错误?丢失的是什么?
编辑1:
我已经注销了我正在处理的系统。在我升级版本的实验 - openSSL 1.0.1g中,我想,我已经搞乱了库。 SSH连接有问题。 : - (
可能是我原来的问题还与此有关吗?ssh root@10.200.2.197 ssh_exchange_identification:远程主机关闭连接
我将在修复SSH连接问题时更新详细信息更新帖子。
编辑2:
我的系统是RHEL 6.1。对于SSH,由于来自ssh
的版本不匹配错误,必须从CD重新安装OpenSSL rpm。通过此OpenSSL重新安装,已在/usr/lib/
和/usr/lib64/
中设置了库。现在,我无法通过TLSv1_1_client_method()
查看nm
。
我必须放入从1.0.1g到/usr/lib64/' and thus resulted in
nm`的库,显示TLS方法。虽然编译它是使用其他版本?不确定。