You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qt Linux部署遇网络问题:HTTPS下载失败疑缺OpenSSL

解决Qt程序打包后HTTPS下载失败的SSL依赖问题

从你给出的报错信息来看,问题非常明确:你的程序在运行时找不到OpenSSL相关的库文件,导致HTTPS请求无法正常完成。虽然你已经打包了Qt Network库,但Qt处理HTTPS请求时依赖的OpenSSL库并没有被包含进去,而且因为Qt采用动态加载的方式调用OpenSSL(而非直接链接),所以用ldd命令查不到这些依赖——这就是为什么本地运行正常但打包后出问题的核心原因。

下面是针对你情况的简单解决步骤,都是容易操作的命令和动作:

  • 步骤1:找到本地系统中的OpenSSL库
    因为你的本地电脑能正常运行程序,说明本地已经安装了正确版本的OpenSSL库。打开终端,执行以下命令查找这些库:

    # 查找负责SSL加密通信的libssl库
    find /usr -name "libssl.so.*"
    # 查找负责加密算法实现的libcrypto库
    find /usr -name "libcrypto.so.*"
    

    你会得到类似这样的结果(具体路径和版本号可能和你的系统不同):

    /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0
    /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0
    
  • 步骤2:复制OpenSSL库到你的压缩包中
    把上面找到的两个(或对应版本的)库文件,复制到你打包的压缩包目录里,和libQt5Network.so.5等Qt库放在同一个文件夹下。
    注意:如果找到的结果里有软链接(比如libssl.so.1指向libssl.so.1.0.0),最好把软链接和实际的库文件都复制过去,这样程序能正确识别并加载对应的版本。

  • 步骤3:重新打包并测试
    把包含了OpenSSL库的文件重新打包成.zip,发给同事解压运行。此时程序应该能正常加载SSL库,完成HTTPS文件下载了。

额外提示(可选)

如果觉得手动找库麻烦,也可以用linuxdeployqt工具来自动打包所有依赖(包括OpenSSL)。这个工具会自动扫描你的Qt程序,把所有需要的库、插件都打包好,适合不想手动处理依赖的场景。不过对你来说,手动复制OpenSSL库已经足够解决当前问题了。

内容的提问来源于stack exchange,提问作者user7431005

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 09:52:29