【发布时间】:2017-02-07 15:51:29
【问题描述】:
我有一个使用 QWebSocket class 但不使用 SSL 的应用程序。当我执行使用 Qt 5.3 编译的版本但 Qt 5.7 可执行文件因以下警告冻结时,它工作正常:
QSslSocket: cannot resolve CRYPTO_num_locks
QSslSocket: cannot resolve CRYPTO_set_id_callback
QSslSocket: cannot resolve CRYPTO_set_locking_callback
QSslSocket: cannot resolve ERR_free_strings
QSslSocket: cannot resolve EVP_CIPHER_CTX_cleanup
QSslSocket: cannot resolve EVP_CIPHER_CTX_init
QSslSocket: cannot resolve sk_new_null
QSslSocket: cannot resolve sk_push
QSslSocket: cannot resolve sk_free
QSslSocket: cannot resolve sk_num
QSslSocket: cannot resolve sk_pop_free
QSslSocket: cannot resolve sk_value
QSslSocket: cannot resolve SSL_library_init
QSslSocket: cannot resolve SSL_load_error_strings
QSslSocket: cannot resolve SSL_get_ex_new_index
QSslSocket: cannot resolve SSLv2_client_method
QSslSocket: cannot resolve SSLv3_client_method
QSslSocket: cannot resolve SSLv23_client_method
QSslSocket: cannot resolve SSLv2_server_method
QSslSocket: cannot resolve SSLv3_server_method
QSslSocket: cannot resolve SSLv23_server_method
QSslSocket: cannot resolve X509_STORE_CTX_get_chain
QSslSocket: cannot resolve OPENSSL_add_all_algorithms_noconf
QSslSocket: cannot resolve OPENSSL_add_all_algorithms_conf
QSslSocket: cannot resolve SSLeay
QSslSocket: cannot resolve SSLeay_version
QSslSocket: cannot call unresolved function CRYPTO_num_locks
QSslSocket: cannot call unresolved function CRYPTO_set_id_callback
QSslSocket: cannot call unresolved function CRYPTO_set_locking_callback
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function SSLv23_client_method
QSslSocket: cannot call unresolved function sk_num
我在 5.3 版本中没有看到这些警告(正常工作),这表明我不应该忽略它们,as asked in this question。另外,QT += network is already in my src.pro。
我被引导相信Debian dropped these symbols from the openssl package。谁能告诉我这里发生了什么以及如何解决这个问题?
系统信息
我在 Debian 上运行
$ uname -r
4.8.0-2-amd64
我已经安装了 openssl 和 libssl-dev
openssl is already the newest version (1.1.0c-2).
libssl-dev is already the newest version (1.1.0c-2).
我试过用 Qt 5.3 和 5.7 运行它
$ qmake -v
QMake version 3.0
Using Qt version 5.7.1 in /usr/lib/x86_64-linux-gnu
【问题讨论】:
-
我有同样的问题,我一直坚持...仍在搜索...有关此的更多信息: * 在我的 Debian Stretch 上,此问题发生在所有 Qt 版本(Qt5.3 , 5.6, 5.7, 5.8)。它适用于我的同事的 Qt5.3。所以这可能是由于 Qt 版本的安装方式,而不是 Qt 版本本身。 * 它只发生在 WebSocket 客户端,而不是 WebSocket 服务器。