坑了我2天的麒麟系统下的QT程序打包

文章讲述了开发者在麒麟V10系统上使用QT5.12.8开发的程序打包后,在终端运行时报错,因找不到libsoftokn3.so库。作者发现即使库已包含在打包中,问题依然存在。通过替换系统目录下的库文件,解决了这个问题。
摘要由CSDN通过智能技术生成

坑了我2天的麒麟系统下的QT程序打包

开发环境

银河麒麟V10系统,基于QT5.12.8开发。

背景描述

qt基于release模式编译出的可执行程序文件(这里假如二进制文件名为TestBin),对其进行打包(怎么打包这里略,有需要的请留言),以便于制作成安装包,或者直接可以运行的可执行程序。

问题描述

对可执行程序,在终端执行时,报如下错误:
[32706:32739:0221/185810.785973:ERROR:nss_util.cc(674)] Error initializing NSS with a persistent database (sql:/home/mlxz/.pki/nssdb): libsoftokn3.so: 无法打开共享对象文件: 没有那个文件或目录

[32706:32739:0221/185810.786023:ERROR:nss_util.cc(154)] Error initializing NSS without a persistent database: NSS error code: -5925

[32706:32739:0221/185810.786030:FATAL:nss_util.cc(156)] nss_error=-5925, os_error=0
追踪与中断点陷阱 (核心已转储)

在这里插入图片描述

分析问题

从问题的表面看来,这里是找不到库libsoftokn3.so,但是我打包时已将此库打包至当前可执行程序的同级目录下,即可执行程序所在目录是有这个库的。
网上查阅了一些资料,说是~~因为nss库需要重新执行安装,或者秘钥key不对等等,报错信息 “ERROR:nss_util.cc(674)” 指示在Linux环境下使用Qt进行软件打包时,出现了一个与网络安全服务(NSS)相关的错误。NSS是Mozilla的一个项目,用于提供安全相关的功能,如SSL/TLS支持 ~~
以上所说的都不能实际解决此问题。
尝试执行命令:ldd ./TestBin
终端打印出的结果看出,都找得到可执行程序的所有依赖库,并没有出现类似** ..not found..字眼。
所以就很奇怪,程序在qtcreator中能直接运行,但是打包出来的就是不能手动单独运行,所有库都能找到,环境变量设置了也不行。。。差点崩溃。

解决方法

还是从根源下手,既然报的库有问题,就着手替换库,查询了的系统目录下具有的libsoftokn3.so库。在这里插入图片描述删除打包可执行程序同目录下的libsoftokn3.so库,重新进行拷贝即可。
执行命令1: cp /usr/lib/x86_64-linux-gnu/nss/libsoftokn3.so ./

执行命令2: cp /lib/x86_64-linux-gnu/libnssutil3.so ./

执行命令3: cp /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so ./

到此,问题得到解决。

  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tkzdhx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值