Linux下Qt发生错误qt.network.ssl:QSslSocket:cannotresolve...

在Linux上Qt使用network时出现错误:

qt.network.ssl: QSslSocket: cannot resolve TLSv1_1_client_method
qt.network.ssl: QSslSocket: cannot resolve TLSv1_2_client_method
qt.network.ssl: QSslSocket: cannot resolve TLSv1_1_server_method
qt.network.ssl: QSslSocket: cannot resolve TLSv1_2_server_method
qt.network.ssl: QSslSocket: cannot resolve SSL_select_next_proto
qt.network.ssl: QSslSocket: cannot resolve SSL_CTX_set_next_proto_select_cb
qt.network.ssl: QSslSocket: cannot resolve SSL_get0_next_proto_negotiated
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_get0_next_proto_negotiated

经网上查阅,大概知道了原因,就是要自己重新编译openssl.第一次用的是1.1版本的,发现还是解决不了,于是下了1.0.1的.
>>链接

wget https://www.openssl.org/source/old/1.0.1/openssl-1.0.1.tar.gz
tar zxvf openssl-1.0.1.tar.gz
cd openssl-1.0.1/
./config enable-shared
make

在 openssl-1.0.1 目录下生成了so文件,复制到Qt安装目录lib下

cp libcrypto.so libcrypto.so.1.0.0 libssl.so libssl.so.1.0.0 /opt/Qt5.6.2/5.6/gcc_64/lib

然后ok


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!