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

坑了我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
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
麒麟系统是基于Ubuntu的操作系统打包Qt程序为应用程序可以通过以下步骤进行: 1. 安装必要的工具:在终端中执行以下命令来安装打包所需的工具: ``` sudo apt-get install build-essential qt5-default qtcreator ``` 2. 打开Qt Creator:打开Qt Creator应用程序,然后打开你的Qt项目。 3. 配置构建选项:在Qt Creator中的“构建”菜单下,选择“构建设置”,确保你选择了正确的构建套件。然后选择“构建”选项卡,确保选择了正确的构建目标和构建步骤。 4. 构建项目:点击Qt Creator窗口下方的构建按钮,开始构建你的项目。 5. 创建应用程序包:构建完成后,在Qt Creator中的“构建”菜单下,选择“部署到远程设备”,然后选择“创建应用程序包”。 6. 配置应用程序包:在创建应用程序包对话框中,选择输出目录和应用程序包的名称。你还可以选择是否包含Qt运行库和其他依赖项,以及是否自动生成启动脚本等。 7. 创建应用程序包:点击创建按钮,Qt Creator将使用Linux Deploy工具来创建应用程序包。这个过程可能需要一些时间,取决于你的项目的大小和复杂性。 8. 完成打包:当创建应用程序包完成后,你将在输出目录中找到一个文件夹,其中包含了你的应用程序的所有必要文件。你可以将整个文件夹复制到任何其他麒麟系统中运行你的应用程序。 以上就是使用麒麟系统打包Qt程序为应用程序的过程。请注意,这只是一个简单的概述,实际的操作可能会有所不同,具体步骤可能会因你的项目和系统环境而有所不同。建议参考相关的Qt文档和麒麟系统的指南来获得更详细和准确的信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

tkzdhx

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

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

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

打赏作者

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

抵扣说明:

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

余额充值