Qt и OpenSSL несовместимая версия на Ubuntu - PullRequest
0 голосов
/ 06 сентября 2018

У меня возникают проблемы при попытке заставить классы QNetwork работать с Qt5.11.1 в Ubuntu 18.04

В моей системе установлены openssl 1.1.0g и libssl-dev.

Версия opensslиспользуется Qt 1.0.2k.Я проверил с QSslSocket::sslLibraryBuildVersionString().Плюс QSslSocket::supportsSsl() возвращает false.

Я пытаюсь разобраться с этим, но у меня всегда возникают следующие ошибки:

qt.network.ssl: QSslSocket: cannot resolve CRYPTO_num_locks
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_id_callback
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_locking_callback
qt.network.ssl: QSslSocket: cannot resolve ERR_free_strings
qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_cleanup
qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_init
qt.network.ssl: QSslSocket: cannot resolve sk_new_null
qt.network.ssl: QSslSocket: cannot resolve sk_push
qt.network.ssl: QSslSocket: cannot resolve sk_free
qt.network.ssl: QSslSocket: cannot resolve sk_num
qt.network.ssl: QSslSocket: cannot resolve sk_pop_free
qt.network.ssl: QSslSocket: cannot resolve sk_value
qt.network.ssl: QSslSocket: cannot resolve SSL_library_init
qt.network.ssl: QSslSocket: cannot resolve SSL_load_error_strings
qt.network.ssl: QSslSocket: cannot resolve SSL_get_ex_new_index
qt.network.ssl: QSslSocket: cannot resolve SSLv3_client_method
qt.network.ssl: QSslSocket: cannot resolve SSLv23_client_method
qt.network.ssl: QSslSocket: cannot resolve SSLv3_server_method
qt.network.ssl: QSslSocket: cannot resolve SSLv23_server_method
qt.network.ssl: QSslSocket: cannot resolve X509_STORE_CTX_get_chain
qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_noconf
qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_conf
qt.network.ssl: QSslSocket: cannot resolve SSLeay
qt.network.ssl: Incompatible version of OpenSSL

Я проверил несколько вопросов и форумов по этому поводуи ничто, кажется, не работает для меня.У кого-нибудь есть идеи?

Ответы [ 3 ]

0 голосов
/ 13 сентября 2018

Я скопировал libcrypto.so и libssl.so (v1.0.2) в мою текущую директорию lib компилятора (<QTDIR>/5.11.1/gcc_64/lib).В моем случае я взял эти 2 библиотеки в /usr/lib/x86_64-linux-gnu/: libssl.so.1.0.0 и libcrypto.so.1.0.0, скопировал и переименовал.У меня это сработало.

0 голосов
/ 22 июня 2019

Я решил эту проблему, создав ссылку на openssl 1.1.0 следующим образом:

  1. Удалите libcrypto.so.1.0.0 и libssl.so.1.0.0 в / opt / f5 / vpn / lib;
  2. Создать ссылки:

    sudo ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 /opt/f5/vpn/lib/libcrypto.so.1.0.0 
    
    sudo ln -s /usr/lib/x86_64-linux-gnu/libssl.so.1.1 /opt/f5/vpn/lib/libssl.so.1.0.0
    
0 голосов
/ 06 сентября 2018

Мне наконец-то удалось заставить его работать.

Я установил openssl 1.0.2k из исходников. Я скачал нужную версию здесь и следовал учебнику на этой странице .

После этого у меня все еще были некоторые ошибки, но не для несовместимой версии. Чтобы исправить это, я установил libssl1.0-dev и все было хорошо (спасибо этому парню ).

Надеюсь, это кому-нибудь поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...