初学银河麒麟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盘,无法自定义安装 四.安装完成之后自动跳出该页面 我们在学习 ...
- 理论+实践,教你如何使用Nginx实现限流
摘要:Nginx作为一款高性能的Web代理和负载均衡服务器,往往会部署在一些互联网应用比较前置的位置.此时,我们就可以在Nginx上进行设置,对访问的IP地址和并发数进行相应的限制. 本文分享自华为云 ...
- 分布式事务 | 使用DTM 的Saga 模式
DTM 简介 前面章节提及的MassTransit.dotnetcore/CAP都提供了分布式事务的处理能力,但也仅局限于Saga和本地消息表模式的实现.那有没有一个独立的分布式事务解决方案,涵盖多种 ...
- 企业微信集成openai实现ChatGPT机器人
背景: 现在网上查资料,痛点太多了,什么广告,什么重复的,对于程序员的我来说,简直是无语 最近接触到ChatGpt,问了些技术问题,答的比某度好,甚至可以写代码,真的太棒了 因此想写个专门的机器人,给 ...
- Nginx07 keepalived
https://hashnode.blog.csdn.net/article/details/124532338 1 简介 Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控L ...
- vivo官网App模块化开发方案-ModularDevTool
作者:vivo 互联网客户端团队- Wang Zhenyu 本文主要讲述了Android客户端模块化开发的痛点及解决方案,详细讲解了方案的实现思路和具体实现方法. 说明:本工具基于vivo互联网客户端 ...
- 构建api gateway之 openresty 中如何使用 wasm
openresty 中如何使用 wasm WASM 是什么? WebAssembly是一种运行在现代网络浏览器中的新型代码,并且提供新的性能特性和效果.它设计的目的不是为了手写代码而是为诸如C.C++ ...
- sqlserver数据库批量新增修改类
MSSql Server 数据库批量操作 需要引用的命名空间 using System; using System.Collections.Generic; using System.Data; us ...
- 网页怎样引入本地硬盘上的JS文档
网页通过<script>标记可以引入在线的js文档,只有把网页保存在本地硬盘才能使用相对路径引入本地js文档,普通浏览器难以实现在线页面上引入本地js文档.怎么解决这个问题呢? 首先准备好 ...
- TCP/IP 协议(10):TCP 协议一百问
TCP/IP 协议(10):TCP 协议一百问 杨领well 的 TCP/IP 协议专栏 TCP 协议部分一直没有更新,是因为我不确定到底应该怎么来介绍 TCP 协议才能干货满满.最后我决定以 Q&a ...