飞腾架构麒麟V10桌面系统Qt应用程序打包

这篇具有很好参考价值的文章主要介绍了飞腾架构麒麟V10桌面系统Qt应用程序打包。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

本文记录了在飞腾架构麒麟V10桌面系统中打包Qt应用程序及部署的一些注意事项。打包工具使用的是linuxdeployqt,在飞腾架构架构下没有现成的工具安装包,需要自行编译安装。

1. linuxdeployqt

首先下载linuxqtdeploy下载地址https://github.com/probonopd/linuxdeployqt

飞腾架构麒麟V10桌面系统Qt应用程序打包,qt,打包,c++
下载之后解压目录如上图所示,在编译之前需要修改一个地方,如下图所示红色框中的if(strvercmp(glcv, "2.32") >= 0)改为if(strvercmp(glcv, "20") >= 0),其中glcv的定义为 const char *glcv = gnu_get_libc_version (); 表示libc的版本号, 麒麟V10上自带的glibc版本远大于2.32而小于20,所以这里改为20 就不会报错了。
飞腾架构麒麟V10桌面系统Qt应用程序打包,qt,打包,c++

1.1 编译安装 linuxdeployqt

编译linuxdeployqt需要参考根目录下的BUILDING.md文档,打开该文档,按照提示来编译,下面是需要执行的一些命令:

sudo apt-get -y install git g++ libgl1-mesa-dev
#将qt5的bin目录添加到环境变量
export PATH=/opt/qt5/bin:$PATH
cd linuxdeployqt
qmake
make

不出意外的话,编译很快结束,这时已经生成了linuxqtdeploy 可执行程序,如果想要安装到qt5的bin目录下的话则执行下面的安装命令:

sudo make install
1.2 编译安装 patchelf

下载源码及编译安装命令如下:

wget https://nixos.org/releases/patchelf/patchelf-0.9/patchelf-0.9.tar.bz2
tar xf patchelf-0.9.tar.bz2
( cd patchelf-0.9/ && ./configure  && make && sudo make install )
1.3 可选安装 appimagetool

如果想要生成AppImages,下载系统对应版本的 appimagetool 并添加到系统环境变量$PATH中, 例如安装到/usr/local/bin 目录下,确保下载的文件重命名为 appimagetool 并添加了可执行权限,chmod a+x。下载及安装命令如下:

sudo wget -c "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage" -O /usr/local/bin/appimagetool
sudo chmod a+x /usr/local/bin/appimagetool

至此打包工具安装完成,接下来尝试打包Qt程序。

2.设置环境变量

用linuxdeployqt 打包的过程中,会自动将程序依赖的库文件拷贝到指定目录中去,前提是这些库能被工具访问到。qt程序依赖的库和插件基本上在qt的安装目录下,如果程序还依赖其他的库,如自己编译的动态库、数据库驱动等,都要将其所在的目录添加到环境变量中。下面是一个配置环境变量的示例:

#linuxdeployqt安装在/opt/qt5/bin目录下,确保在终端可以执行该程序
export PATH=/opt/qt5/bin:$PATH 
#需要打包的qt程序依赖的库目录,bin目录下有程序依赖的其他so库
export LD_LIBRARY_PATH=/home/demo/bin:$LD_LIBRARY_PATH
#需要打包的qt程序依赖的qt库目录
export LIB_PATH=/opt/qt5/lib:$LIB_PATH
#需要打包的qt程序依赖的qt插件目录
export PLUGIN_PATH=/opt/qt5/plugins:$PLUGIN_PATH

接下来正式打包qt程序。

3. 打包

将编译好的qt应用程序demo拷贝到一个空目录package下。在上面设置好环境变量的终端内切换目录到package下,执行打包命令:

linuxdeployqt demo -appimage

根据程序依赖库的多少,打包时间会有很大差异,打包过程会在package根目录下创建一些目录,结构如下:
飞腾架构麒麟V10桌面系统Qt应用程序打包,qt,打包,c++

如果在打包过程中程序依赖的某个库文件找不到,打包进程将终止并将缺少的库信息输出到终端,根据提示在系统中找到依赖的库拷贝到对应的环境变量所在的目录下后,再次执行打包命令,直到打包完成,不报错。这里有个小技巧,如果缺少的是qt插件,可以尝试在麒麟V10系统自带的qt安装目录下拷贝到你的qt环境中,前提是qt大版本相同。
打包完成后,需要将程序运行所需的一些配置文件、样式表、sqlite数据库文件等拷贝到package目录下。

4.测试

打包完成后需要测试程序是否能独立运行,重新打开一个终端,在新终端里用命令运行demo程序,看程序能否正常启动,若能正常启动,则说明打包成功,若启动失败则根据错误提示解决问题。

5.添加启动图标

5.1 设置桌面图标和开始菜单图标

在打包的根目录下会生成名为default.png 和 default.desktop两个文件,其中default.png 就代表应用程序图标,需要替换成你的应用程序图标即可。default.desktop文件的内容如下:

[Desktop Entry]
Type=Application                    
Name=XXXX系统
Exec=/home/demo/ZODA
Icon=/home/demo/zoda.png
Comment=XXX系统
Terminal=true

这里需要关注的是Exec 和 Icon这两个字段,其中Exec为应用程序所在的绝对路径,Icon为应用程序所在的绝对路径。将default.desktop重命名为应用程序的名字如zoda.desktop,如果Exec和 Icon这两个值设置正确,zoda.desktop文件的图标会变成应用程序图标的样子。修改zoda.desktop的权限,添加可执行权限chmod +x,然后拷贝到桌面,就可以在桌面双击图标打开应用程序。将 zoda.desktop 拷贝到/usr/share/applications/ 目录下即可在开始菜单中看到你的应用程序的图标。

5.2设置任务栏图标

qt应用程序的任务栏图标要在程序中设置,首先将png格式的图标转为ico格式,并添加在资源文件中,然后在程序的主窗口中设置图标

MainWindow w;
w.setWindowIcon(QIcon(":/zoda.ico"));

重新编译运行程序即可在任务栏中看到应用程序的图标。

6.总结

以上就是本文的所有内容了,文中的打包部署步骤都是笔者亲自动手实践后的记录,真实有效。如对文中内容有疑问,欢迎留言讨论!!文章来源地址https://www.toymoban.com/news/detail-666484.html

到了这里,关于飞腾架构麒麟V10桌面系统Qt应用程序打包的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 银河麒麟系统V10——安装VNC实现远程桌面

    目录 检查桌面环境 安装 配置 ​编辑防火墙配置 安装环境: 生产环境一般采用最小化安装,VNC 需要在有 桌面 环境下才能运行,进行下面操作查看到  UKUI GUI  桌面环境。 1、因我已将系统yum源指向本地,我直接输入如下命令安装即可: 2、安装后使用如下命令验证是否成功

    2024年02月04日
    浏览(226)
  • VMware虚拟机安装银河麒麟桌面版V10系统

    百度搜索或浏览器地址栏直接输入地址 选择桌面版操作系统进行安装 我们日常办公使用的是桌面版的系统,选择桌面版操作系统进行下载 现在安装系统需要填写申请试用表,填写完之后,才会调转到镜像下载 随着国产系统的日益发展,申请试用以后有可能取消,直接就是镜像下载

    2024年01月21日
    浏览(53)
  • 银河麒麟桌面操作系统V10SP1修复boot分区

    一、问题现象 机器重启无法进入系统,出现“Loading initial ramdisk”界面,此时可能是boot文件损坏,导致无法进入系统 二、boot分区修复 1、准备一个与主机相同系统版本的系统启动盘 2、将U盘插入主机,进入bios将光盘(或U盘启动盘)设置为第一启动项 -- 开机选择“试用银河

    2024年02月11日
    浏览(251)
  • 飞腾FT-2000+/64银河麒麟服务器v10安装及(LSI)MegaRAID配置

    环境说明: cpu:Phytium,FT-2000+/64 bios: 昆仑固件 操作系统:Kylin Linux Advanced Server V10 (Lance) raid卡:AVAGO MegaRAID SAS 9361-8i 存储:2块SSD,11块HDD 部署要求 使用LSI创建raid,2块ssd作raid1(拿到设备时此项已作好本次不重作),使用u盘安装kylin到ssd raid上,11块hdd作raid5+1热备。 遇到的问题:

    2024年03月28日
    浏览(143)
  • 银河麒麟桌面V10SP1版本系统休眠唤醒鼠标键盘失效解决方法

    使用银河麒麟桌面系统有时会出现系统休眠后再唤醒,鼠标键盘失效的问题,可尝试以下方法解决。 1.检查是否安装 laptop-mode-tools 工具 执行命令: 如果执行命令无结果输出,表示未安装(如果已安装,忽略第2步) 2.安装 laptop-mode-tools 包 执行命令: 安装完成后查看结果 3.判断

    2024年02月12日
    浏览(118)
  • k8s学习(三十四)飞腾2000+麒麟V10离线部署k8s

    需要在飞腾芯片和麒麟V10操作系统下安装k8s,目前在飞腾2000下安装成功,飞腾2500还没有成功,现介绍飞腾2000下的安装流程。 准备多台机器,其中一台作为K8S主节点,其他作为从节点。 这里只准备了2台机器,一台作为主节点,一台作为从节点。 k8s版本为1.20.2 功能 IP k8s主节

    2024年02月01日
    浏览(89)
  • 银河麒麟V10操作系统(aarch64架构)部署mysql

    1.解压 2.安装必须软件(务必根据顺序) 3.修改配置文件 在末尾补一行: 4.初始化数据库 5.目录授权 6.启动mysql服务 7.编辑下环境变量 末尾加上一行: 8.查看临时密码 9.用临时密码登录 10.修改密码  navicat远程连接报错 1251 client does not support authentication protocol requested by server;c

    2024年02月09日
    浏览(67)
  • 银河麒麟桌面操作系统V10SP1如何在保留“数据盘”的情况下进行系统重装

    银河麒麟桌面操作系统V10SP1-2203是截至2023年4月份麒麟软件公司发布的桌面操作系统最新版本,安装此版本操作系统时有“全盘安装”和“自定义安装”两种形式,那么如何像Windows系统保留“D盘”重装那样,在不格式化“数据盘”的情况下来进行麒麟系统重装呢?本篇文章将

    2024年02月07日
    浏览(156)
  • Qt+Pyhton实现麒麟V10系统下word文档读写功能

    前言 我最近遇到一个这样的需求,即把某个软件中采集的数据按照特定的格式导出到world文档中。因为程序是用Qt开发的,所以想找一个满足要求的C++库,通过一番查询发现能完成这个需求的常用C++库有LibreOffice、OpenOffice。这两个库虽然能实现这一需求但是学习成本比较高,

    2024年02月12日
    浏览(37)
  • 银河麒麟 Arm64 v10 sp1系统QT环境搭建指南

    原版系统麒麟V10 sp1 自带的QTCreator 不带QT内核;需要手动下载安装; 下载地址: 安装指南 银河麒麟V10+飞腾处理器+ARM+Qt5.12.8离线安装包_倔强的眼神的博客-CSDN博客 https://download.csdn.net/download/tudou23115/87853395?spm=1001.2014.3001.5501 在线安装 离线安装 安装后 opengl gllib可能会被降级

    2024年02月15日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包