首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >即使安装了libssl,Qt也找不到libssl。

即使安装了libssl,Qt也找不到libssl。
EN

Stack Overflow用户
提问于 2017-11-04 22:45:33
回答 3查看 3K关注 0票数 3

想要解决这个问题好几个小时。我的Qt程序依赖于https连接,但in不能在Arch上启动它( Debian和Ubuntu可以很好地工作)。

I向LD_LIBRARY_PATH LD_LIBRARY_PATH=home/michal/Qt/5.10.0/gcc_64/lib:/home/michal/Qt/5.10.0/gcc_64/lib:/usr/lib添加/usr/lib

程序输出

代码语言:javascript
运行
复制
qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_CTX_new
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_library_init
qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error

ls /usr/lib/libssl*

代码语言:javascript
运行
复制
lrwxrwxrwx 1 root root     13  2. lis 17.20 /usr/lib/libssl.so -> libssl.so.1.1
-r-xr-xr-x 1 root root 502024 25. kvě 18.54 /usr/lib/libssl.so.1.0.0
-rwxr-xr-x 1 root root 434176  2. lis 17.21 /usr/lib/libssl.so.1.1
-rwxr-xr-x 1 root root 359736  5. říj 22.49 /usr/lib/libssl3.so

ls -l /usr/lib/libcrypto*

代码语言:javascript
运行
复制
lrwxrwxrwx 1 root root      16  2. lis 17.20 /usr/lib/libcrypto.so -> libcrypto.so.1.1
-r-xr-xr-x 1 root root 2842880 25. kvě 18.54 /usr/lib/libcrypto.so.1.0.0
-rwxr-xr-x 1 root root 2594952  2. lis 17.21 /usr/lib/libcrypto.so.1.1

带有测试代码

代码语言:javascript
运行
复制
int main(int argc, char *argv[]) {
    QApplication a(argc, argv);
    qDebug()<<"SSL version use for build: "<<QSslSocket::sslLibraryBuildVersionString();
    qDebug()<<"SSL version use for run-time: "<<QSslSocket::sslLibraryVersionNumber();
    qDebug()<<QCoreApplication::libraryPaths();

    return 0;
}

输出为

代码语言:javascript
运行
复制
SSL version use for build:  "OpenSSL 1.0.1e-fips 11 Feb 2013"
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 SSLv2_client_method
qt.network.ssl: QSslSocket: cannot resolve SSLv3_client_method
qt.network.ssl: QSslSocket: cannot resolve SSLv23_client_method
qt.network.ssl: QSslSocket: cannot resolve SSLv2_server_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
SSL version use for run-time:  0
("/home/michal/Qt/5.10.0/gcc_64/plugins", "/home/michal/Programming/build-Test-Desktop_Qt_5_10_0_GCC_64bit4-Vydu00e1nu00ed")
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-11-20 09:09:34

在我将Ubuntu16.x升级到18.04之后,我遇到了同样的问题。原因似乎是新Ubuntu上的默认libssl版本为1.1.0,而Qt的预构建二进制文件到目前为止预期为1.0.0 (有关此问题的更多细节,请参见https://bugreports.qt.io/browse/QTBUG-68156 )。

我的解决办法如下。

  1. 切换到Qt可执行文件的目录。
  2. 创建一个指向libssl版本1.0.0的符号链接 -s /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 libssl.so
  3. 确保您的LD_LIBRARY_PATH包含1中的目录。

现在,启动您的Qt可执行文件将选择正确的libssl版本。

票数 2
EN

Stack Overflow用户

发布于 2018-02-03 05:20:08

我需要重新安装Ubuntu,并安装OpenSSL1.0.x版本,而不是1.1.x版本。此外,如果需要,您可以在构建项目之前运行export LD_LIBRARY_PATH=/path/openssl/lib

票数 0
EN

Stack Overflow用户

发布于 2018-03-23 11:02:09

我在Ubuntu16.04的QT5.10.1上也有同样的问题。我刚刚在我的机器上编译了Qt并安装了它,这个解决了ssl问题,甚至开始使用opnessl 1.1.0。我已经配置了Qt无-openssl链接标志。考虑到编译可能会花费大量的时间,2-4小时。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47116375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档