初学银河麒麟linux笔记 第六章 发布qt程序
本章参考了@长沙红胖子Qt 的笔记
https://blog.51cto.com/hongpangzi/5788384
这里纪录一下步骤
linux上的QT程序已经能正常编译运行,这里需要进行发布。
1.下载linuxdeployqt源代码
https://gitcode.net/mirrors/probonopd/linuxdeployqt
得到 linuxdeployqt-master.tar
2.解压,修改源码,去掉版本检查
找到main.cpp源码,将这一段(在190行左右)注释掉:
3.安装依赖第三方库
sudo apt-get install cmake
sudo apt-get install patchelf
4.使用cmake配置
cmake CMakeLists.txt
出现错误,直接修改源代码(引用了他人的图片)
再执行
cmake CMakeLists.txt
成功
直接删掉目录下的缓存文件:CMakeCache.txt,然后继续:
5. 配置Qt的依赖环境
装上cmake的gui版本:
sudo apt-get install cmake-gui
运行
cmake-gui
将地址填写完毕后,直接点击“configure”,会直接出现各个环境变量路径(这里的build是我手动新建的文件夹)
6.生成generate
7.编译Cmake
切入build目录,并且使用make命令即可:
8.安装到系统目录
sudo mv linuxdeployqt /usr/local/bin/
9.测试编译是否成功
pwd
linuxdeployqt
linuxdeployqt打包流程
打开需要打包的工程,再找个空目录
开始打包
新建一个脚本 ,命名 source env.sh
vim source env.sh
输入
#!/bin/sh
QT_DIR=/opt/Qt5.12.3/5.12.3/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
然后保存退出,得到脚本文件
运行脚本
sh source env.sh
进行打包
linuxdeployqt xxx -verbose2
打包过程中发现几个自行添加的外部控件的库没有找到
将这几个库放入
/opt/Qt5.12.3/5.12.3/gcc_64/lib
再进行打包
打包成功,当前可直接运行程序。
但当转移到目标机上时,出现
在lib文件夹中找到这几个文件,放入可以找到其他库文件的地址里,再运行。
初学银河麒麟linux笔记 第六章 发布qt程序的更多相关文章
- Linux 笔记 - 第六章 Linux 磁盘管理
博客地址:http://www.moonxy.com 一.前言 1.1 硬盘 硬盘一般分为 IDE 硬盘.SCSI 硬盘和 SATA 硬盘.在 Linux 中,IDE 接口的设备被称为 hd,SCSI ...
- 鸟哥的Linux私房菜笔记第六章(二)
文件内容查询 直接查询文件内容 查阅一个文件的内容可以使用指令cat/tac/nl. # [cat|tac|nl] 文件 区别: 1.cat是直接把文件内容输出到屏幕上,并且从第一行开始输出到末行 2 ...
- Android群英传笔记——第六章:Android绘图机制与处理技巧
Android群英传笔记--第六章:Android绘图机制与处理技巧 一直在情调,时间都是可以自己调节的,不然世界上哪有这么多牛X的人 今天就开始读第六章了,算日子也刚好一个月了,一个月就读一半,这效 ...
- 深入理解 C 指针阅读笔记 -- 第六章
Chapter6.h #ifndef __CHAPTER_6_ #define __CHAPTER_6_ /*<深入理解C指针>学习笔记 -- 第六章*/ typedef struct _ ...
- JVM学习笔记-第六章-类文件结构
JVM学习笔记-第六章-类文件结构 6.3 Class类文件的结构 本章中,笔者只是通俗地将任意一个有效的类或接口锁应当满足的格式称为"Class文件格式",实际上它完全不需要以磁 ...
- 在Linux下使用linuxdeployqt发布Qt程序
一.简介 linuxdeployqt 是Linux下的qt打包工具,可以将应用程序使用的资源(如库,图形和插件)复制到二进制运行文件所在的文件夹中. 二.安装linuxdeployqt 去github ...
- [置顶] Linux下发布QT程序
Linux下发布QT程序 概述 无论在windows下还是在linux下,可执行程序的运行都依赖于相关的运行库,我们需要将依赖的库找到放到特定的位置,让可执行文件能够找到.在不知道可执行文件依赖哪些库 ...
- Linux学习笔记(第六章)
第六章-档案权限与目录配置#chgrp:改变档案的所属群组#chown:改变档案的拥有者#chmod:改变档案的权限及属性 chown用法 chmod用法: r:4 w:2 x:1对于文档: 对于目录 ...
- 《Microsoft Sql server 2008 Internals》读书笔记--第六章Indexes:Internals and Management(1)
<Microsoft Sql server 2008 Internals>索引文件夹: <Microsoft Sql server 2008 Internals>读书笔记--文 ...
- 鸟哥的linux私房菜——第十六章学习(程序管理与 SELinux 初探)
第十六章.程序管理与 SE Linux 初探 在 Linux 系统当中:"触发任何一个事件时,系统都会将他定义成为一个程序,并且给予这个程序一个 ID ,称为 PID,同时依据启发这个程序的 ...
随机推荐
- postman的安装与使用
一.在浏览器搜索postman找到官网 二.选择自己电脑的操作系统 三.点击下载按钮 完成下载之后双击安装程序即可完成安装操作自动下载到C盘,无法自定义安装 四.安装完成之后自动跳出该页面 我们在学习 ...
- 【教程搬运】分析并编写suricata规则(内含两个示例)
suricata规则分析 参考1 参考2 Suricata 签名的结构 在高层次上,Suricata签名由三部分组成: Action:当流量符合规则时采取的行动 Header:一个标题,描述主机.IP ...
- Quartz帮助类
#region 帮助类 public class QuarztHelper { #region 字段 /// <summary> /// 调度器 /// </summary> ...
- python学习第三周总结
文件操作 文件的读写模式 文件的操作模式 文件相关操作 文件内光标移动 文件内容修改 函数前戏 函数的语法结构 函数的定义和调用 函数的分类 函数的返回值 函数的参数 函数参数之位置参数 默认参数 可 ...
- springcloud 10 spring cloud gateway02 基本使用
官网:https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/ 注册 ...
- 亲测有效! TG Pro 实时温度工具 V2.7.6 for mac 破解版
亲测有效! TG Pro 实时温度工具 V2.7.6 for mac 破解版 TG Pro (Temperature Gauge Pro) 是一款专业显示你的Mac实时温度的软件,可以在系统内的菜单栏 ...
- 关于我在学习LFU的时候,在开源项目捡了个漏这件事。
你好呀,我是歪歪. 这篇文章带大家盘一下 LFU 这个玩意. 为什么突然想起聊聊这个东西呢,因为前段时间有个读者给我扔过来一个链接: 我一看,好家伙,这不是我亲爱的老朋友,Dubbo 同学嘛. 点进去 ...
- 无法加载 DLL“*******.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。
无法加载 DLL"Lib\WeWorkFinanceSdk.dll": 找不到指定的模块. (异常来自 HRESULT:0x8007007E). 网上查找了一大堆,没找到是什么问题 ...
- 下午小博(java小知识)
抽象类: 抽象类中可以构造方法 抽象类中可以存在普通属性,方法,静态属性和方法 抽象类中可以存在抽象方法如果一个类中有一个抽象方法,那么当前类一定是抽象类:抽象类中不一定有抽象方法 抽象类中的抽象方法 ...
- 树莓派开机启动VNC
sudo nano /etc/init.d/vncserver #!/bin/sh ### BEGIN INIT INFO # Provides: vncserver # Required-Start ...