Неопределенная ссылка для TLSv1_1_client_method, хотя 'nm' говорит об обратном
В моем коде клиента 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 пришлось переустановить OpenSSL rpm с CD, так как произошла ошибка несоответствия версий из ssh
, С этой переустановкой OpenSSL библиотеки были установлены прямо в /usr/lib/
а также /usr/lib64/
, Теперь я не вижу TLSv1_1_client_method()
с nm
,
Я должен был положить в библиотеки из 1.0.1g в /usr/lib64/' and thus resulted in
нм, показывающий метод TLS. И во время компиляции он использовал другие версии? Точно сказать не могу.