麒麟系统开发笔记:在国产麒麟系统上使用linuxdeployqt发布qt程序(代码片段)

长沙红胖子Qt 长沙红胖子Qt     2023-01-21     134

关键词:

若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/127484901
红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)

国产麒麟系统相关开发

上一篇:《麒麟系统开发笔记(七):在线安装软件后,提取其安装包,部署目标机使用离线软件包方式安装软件
下一篇:敬请期待…


前言

  在ubuntu上发布qt程序相对还好,使用脚本,但是在麒麟上发布的时候,因为银河麒麟等不同版本,使用脚本就不太兼容,同时为了实现直接点击应用可以启动应用的效果,使用linuxdeployqt发布qt程序。


补充

  在ubuntu上发布程序遇到xcb问题,当我们将其部署到另外同样环境但是未装qt的环境下,运行起来一部分是xcb文件,有一部分解决后可以正常运行启用,另一部分直接段错误,程序宕掉(提示,段核心错误,已转存什么的),使用linuxdeployqt能解决此问题,也就是使用脚本打包的升级版本。

相关博客

  《Qt实用技巧:ubuntu发布程序打包流程(解决插件xcb加载失败)
  《关于 国产麒麟系统双击启动脚本方式后无法启动应用程序 的解决方法


linuxdeployqt

  Linux部署工具linuxdeployqt将应用程序作为输入,并通过将应用程序使用的资源(如库、图形和插件)复制到一个包中使其自包含。结果包可以作为AppDir或AppImage分发给用户,也可以放入交叉分发包中。它可以作为构建过程的一部分,在CMake、qmake和make等系统中部署用C、C++和其他编译语言编写的应用程序。当用于基于Qt的应用程序时,它可以绑定运行应用程序所需的Qt的特定最小子集。

源码下载地址

  csdn粉丝0积分下载地址:https://download.csdn.net/download/qq21497936/86803960
  gitcode地址:https://gitcode.net/mirrors/probonopd/linuxdeployqt


linuxdeployqt编译(麒麟系统,ubuntu)

步骤一:下载解压

  

步骤二:修改源码,去掉版本检查

  找到main.cpp源码,将这一段(在192行左右)注释掉:

gedit tools/linuxdeployqt/main.cpp

  
  (注意:这一步不做会导致打包输出错误信息,具体看“入坑一”)

步骤三:安装依赖第三方库

sudo apt-get install cmake
sudo apt-get install patchelf

步骤四:使用cmake配置

cmake CMakeList.txt

  

  因为安装了git与这个工程可能不对,我们直接使用源码修改大法,直接定位到代码给删掉:
  
  直接删掉目录下的缓存文件:CMakeCache.txt,然后继续:
  

步骤五:配置Qt的依赖环境

  麒麟系统本身自带了qt5,而我们使用了另外安装的qt5,所以依赖需要引入我们自己安装的qt5上。
  为了方便配置,也不影响系统我们装上cmake的gui版本:

sudo apt-get install cmake-gui

  

cmake-gui 

  选择对应的路径,然后使用默认unix makefile方式配置:
  
  错误如下:
  
  添加环境变量路径:
  
  继续配置成功:
  

步骤六:生成generate

  

步骤七:编译make

  切入build目录,并且使用make命令即可:

make

  

步骤八:安装到系统目录

  没有make install这个,手动移动到/usr/local/bin

sudo mv linuxdeployqt /usr/local/bin/

  

步骤九:测试是否编译成功

  


linuxdeployqt打包流程

  新建一个工程
  
  然后找个空目录:
  
  开始打包:
  
  错误“QDir::exists: Empty or null file name”,需要调整打包命令:
  
  错误“qmake not fount on the P A T H ”, q m a k e 要引入 PATH”,qmake要引入 PATHqmake要引入PATH中:

export PATH=$PATH:/home/hdgx/Qt5.12.1/5.12.1/gcc_64/bin

  这里要将Qt引入环境,为了不影响系统,使用脚本引入,每次使用之前使用source env.sh引入即可。

#!/bin/sh
QT_DIR=/home/hdgx/Qt5.12.1/5.12.1/gcc_64
export PATH=$QT_DIR/bin:$PATH
export LIB_PATH=$QT_DIR/lib:$LIB_PATH
export PLUGIN_PATH=$QT_DIR/plugins:$PLUGIN_PATH
export QML2_PATH=$QT_DIR/qml:$QML2_PATH
export LD_LIBRARY_PATH=$QT_DIR/lib:$LD_LIBRARY_PATH

echo $PATH
echo $LIB_PATH
echo $PLUGIN_PATH
echo $QML2_PATH
echo $LD_LIBRARY_PATH

  
  
  下次打包遵循此流程即可,继续打包:
  
  发现已经打包成功(ERROR:Could not parse verbose level忽略):
  
  


入坑

入坑一:运行报错“ERROR:The host system is tool new.”

问题

  

原因

  源码中做了判断,不是源码编译问题,所以要修改源码。

解决

  找到main.cpp源码,将这一段(在第190行左右)注释掉:
  

gedit tools/linuxdeployqt/main.cpp

  
  然后重新make:
  

上一篇:《麒麟系统开发笔记(七):在线安装软件后,提取其安装包,部署目标机使用离线软件包方式安装软件
下一篇:敬请期待…


若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/127484901

麒麟系统开发笔记:在国产麒麟系统上使用linuxdeployqt发布qt程序(代码片段)

若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/127484901红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、... 查看详情

麒麟系统开发笔记:在国产麒麟系统上搭建宇视摄像头sdk基础环境demo(代码片段)

若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/127532255红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、... 查看详情

麒麟系统开发笔记:在国产麒麟系统上搭建宇视摄像头sdk基础环境demo(代码片段)

若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/127532255红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、... 查看详情

麒麟系统开发笔记:在国产麒麟系统上使用gdb定位崩溃异常方法流程进阶定位代码行数及专项测试demo(代码片段)

...mpeg、OSG、单片机、软硬结合等等)持续更新中…国产麒麟系统相关开发上一篇:《麒麟系统开发笔记(十):在国产麒麟系统上使用gdb定位崩溃异常方法流程以及测试Demo》下一篇:敬请期待…前言  上... 查看详情

国产麒麟操作系统定制化业务怎么选择呢?[金其利]

目前,麒麟软件的定制业务在“标准化操作系统增强产品线、行业操作系统产品线、定制操作系统研发”三条主线基础上,发力行业解决方案制定,满足了不同形态的市场化需求,旗下解决方案产品在党政、金融、电信、能源、... 查看详情

银河麒麟操作系统最新版本是哪个,使用起来怎么样?

银河麒麟操作系统最新版本是今年10月28日在2021操作系统产业峰会上发布的“银河麒麟V10SP1”。此次发布的升级版在上一代版本V10的基础上,新增了与移动软件之间的融合,可以在电脑上直接安装和运行手机端的应用,可以支持... 查看详情

麒麟系统开发笔记:制作安装麒麟系统的启动u盘物理机安装麒麟系统以及搭建qt开发环境

...结合等等)持续更新中…(点击传送门)国产麒麟系统相关开发上一篇:《麒麟系统开发笔记(四):从Qt源码编译安装之编译安装QtCreator4.8.1,并配置编译测试Demo》下一篇:敬请期待…前言 ... 查看详情

国产化之x64平台安装银河麒麟操作系统(代码片段)

...目需要实现基础软件全部国产化,其中操作系统指定银河麒麟v4,CPU使用飞腾处理器。飞腾处理器是ARMv8架构的,在之前的文章中介绍了使用QEMU模拟ARMv8架构安装银河麒麟操作系统的方式,不过这种模拟的方式运行效率比较低,... 查看详情

麒麟系统开发笔记:制作安装麒麟系统的启动u盘物理机安装麒麟系统以及搭建qt开发环境

前言  电脑从U盘装麒麟系统,搭建实机Qt开发运行环境。<br>制作麒麟系统U盘(使用LiveUSB)步骤一:先准备个至少8GB的U盘  之前购买的一批联想U盘,如下图:    查看U盘:  步骤二:制作... 查看详情

银河麒麟操作系统v10解决了困扰国产操作系统已久的几个大问题

参考技术A银河麒麟操作系统v10是中国电子研发的操作系统,该系统充分适应5G时代需求,打通手机、平板电脑、PC等,实现多端融合。2020年8月13日,中国电子发布银河麒麟操作系统V10。[1][2]2021年10月27日,麒麟软件正式发布了“... 查看详情

「开源摘星计划」优麒麟系统(国产)部署harbor私有镜像仓库服务(代码片段)

...步将服务部署在国产的操作系统上。  本篇文章则在优麒麟20.04操作系统上部署Harbor2.6.0私有镜像仓库服务,其它版本的Harbor亦可参考本文档。关于优麒麟的详细信息可查看:https://www.openkylin.top/二、主机初始化2.1禁用交互分区... 查看详情

企业实践|如何在阿里云裸金属服务器上使用uefi模式实践安装国产银河麒麟v10操作系统入门篇

...服务器上,使用UEFI模式安装国产的操作系统`KylinOS(银河麒麟)V10Lance`流程,以及简单的操作配置,帮助各位小伙伴从国产服务器入门到放弃..呸..,是支持国产系统,当前国产系统是大趋所势(国家要求),作为一名国企的IT搬砖打... 查看详情

强心剂,银河麒麟v10亮相,纯国产操作系统,打破技术垄断

参考技术A8月13日,麒麟软件发布了旗下全新操作系统——银河麒麟操作系统V10版。综合各方面介绍来看,银河麒麟V10有以下几大亮点。第一点,打破国外技术垄断。银河麒麟V10是100%中国独立开发的操作系统,打破了国外操作系... 查看详情

关于在国产麒麟系统上使用qprocess配合管道命令执行shell命令获取预期结果输出失败的解决方法(代码片段)

若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/126678079红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、... 查看详情

关于在国产麒麟系统上使用qprocess配合管道命令执行shell命令获取预期结果输出失败的解决方法(代码片段)

若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/126678079红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、... 查看详情

关于在国产麒麟系统上使用qprocess配合管道命令执行shell命令获取预期结果输出失败的解决方法(代码片段)

若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/126678079红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、... 查看详情

.net6应用程序适配国产银河麒麟v10系统随记(代码片段)

最近想在麒麟系统上运行.NET6程序,经过一番折腾最终完成了,简单记录一下。目标系统:CPU:aarch64架构(ARM64)操作系统:银河麒麟V10高级服务器系统银河麒麟V10系统(以下简称麒麟)使用的是redhat类似的dnf... 查看详情

玩银河麒麟操作系统终端,忆国外unix主机上偶遇隔壁同胞

...一台国产电脑,国产电脑上使用的是基于Linux的银河麒麟系统,目前银河麒麟系统中的GUI应用程序还是比较少,所以很多操作要通过终端使用命令行命令来完成,比如要获取网卡MAC,还得使用ifconfig命令。在使... 查看详情