【发布时间】:2015-12-11 14:30:56
【问题描述】:
我在 Qt 中有这段代码
QFile file(address);
file.open(QIODevice::ReadOnly);
const QByteArray bytes = file.readAll();
qDebug()<<"Length : " + QString::number(bytes.length());
const QSslCertificate cert(bytes,QSsl::Der);
当我在 Windows 7 64 位中尝试此代码时,它可以完美运行,但是当我为 linux 编译它时,它每次到达最后一行时都会崩溃,即使它给了我正确的长度,但它在终端中与这些行一起崩溃。
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 resolve EC_KEY_new_by_curve_name
qt.network.ssl: QSslSocket: cannot resolve EC_KEY_free
Segmentation fault (core dumped)
这里发生了什么我没有在我的代码中使用任何 QSslSocket,我已经陷入这个问题好几天了。
qt 版本 5.4.2 在 Ubuntu 13.10 64bit 和 CentOS 6.4 64bit 上测试
更新
我在 Windows 和 Linux 上都使用了 openssl-1.0.2d。
【问题讨论】:
-
你发现这个问题了吗?我也有同样烦人的问题
-
@mihaipop 遗憾的是没有。我有点把这个问题抛在脑后,但如果有人解决它,我会很高兴。虽然我怀疑openssl和qt可能存在冲突。你的 qt 和 openssl 版本是什么?
标签: c++ qt openssl certificate