初学银河麒麟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,同时依据启发这个程序的 ...
随机推荐
- Unity之屏幕自适应
Unity之屏幕自适应 哪个小伙伴能告诉我为什么CSDN我上传资源之后,下载费用是5积分啊!?怎么改为0呢,小黑苦恼啊!!!!!!! 一.前言 先言归正传吧,今天小黑给大家带来一个非常不错的分享--屏 ...
- VS针对Linux远程调试步骤
VS2019下对于远程Linux下C++代码的调试 VS2017后新增了对跨平台代码的编写,编译和调试的功能,2019后更是新增了多种插件,以下是针对C++版本的linux环境代码调试 准备工作 安装 ...
- day01-SpringMVC基本介绍-01
SpringMVC介绍-01 1.离线文档 解压 spring-5.3.8-dist.zip文件. 位置:spring-framework-5.3.8/docs/reference/html/web. ...
- 【分析笔记】SiliconLabs EFR32BG22 Bluetooth Mesh SensorClient 源码分析
硬件环境: SLTB010A(BRD4184A Rev A02 / EFR32BG22C224F512IM40) 软件环境: SimplicityStudio5/gecko_sdk_3.2.3 分析工 ...
- immutable.js学习笔记(六)----- OrderedSet
一.OrderedSet 二.普通Set 与 OrderedSet 注意:普通Set并不是严格的一定是升序的 三.takeWhile 四.升序 sort valueA - valueB 五.降序 va ...
- ctfshow_web入门 文件上传
文件上传 还是是一边学习一边做笔记的文章,由于是学习,所以会显得啰嗦 还请各位师傅担待~ 如果有不正确的地方,请师傅们斧正谢谢师傅们 web150 火狐关闭js的插件一旦开启,就没法点击上传按钮了. ...
- 【译】.NET 7 中的性能改进(五)
原文 | Stephen Toub 翻译 | 郑子铭 循环提升和克隆 (Loop Hoisting and Cloning) 我们之前看到PGO是如何与循环提升和克隆互动的,这些优化也有其他改进. 从 ...
- 2013-12-2 ISBN号码
问题描述 试题编号: 201312-2 试题名称: ISBN号码 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包 ...
- let 和 var 的区别
var 关键字 在块级作用域中使用var声明变量,外面同级的块级作用域也可以访问.if.switch.for 等语句的作用域都没有块级作用域,所以说,在这些语句中声明的变量都能被外界访问,这是非常不安 ...
- postgresql索引使用情况及坏索引处理
1.postgresql中索引系统视图pg_stat_user_indexes TEST=# \d+ sys_stat_user_indexes View "SYS_CATALOG.sys_ ...