前言:

最近因项目需求,需要打包linux-qt程序给客户先用一下子。百度一大堆终于找了几个靠谱的来综合一下,留为备用吧。

由于是先遣版所以仅制作为免安装程序的格式。

正文:

博主的qt是5.9.2的,程序名称为ocs,下面看到这个名称替换成自己的就是了。

1.先找个地方,比如桌面创建一个名字为OCS的空文件夹用于放打包后的文件。

2.将项目使用Release模式编译并运行一遍(确保生成可执行程序ocs)。

3.打开程序输出目录(生成的那个可执行程序ocs的目录)。

博主的目录是build-ocs-Desktop-Release。

4.在上一部的目录中新建脚本copylib.sh。

5.在copylib.sh中加入一下内容,并通过指令赋值权限sudo chmod 777 copylib.sh。

#!/bin/bash

LibDir=$PWD"/lib"

Target=$

lib_array=($(ldd $Target | grep -o "/.*" | grep -o "/.*/[^[:space:]]*"))

$(mkdir $LibDir)

for Variable in${lib_array[@]} do

cp "$Variable"$LibDir done

6.打开终端并进入当前文件夹,输入./copylib.sh ocs.

其中, giptables 是运行copylib.sh 脚本的参数,脚本实际上是调用了 ldd ocs指令获得ocs运行时需要哪些库,并将库都复制放到当前目录的lib文件夹中。

7.运行完上述指令后,会在同目录下生成lib文件夹。

8.将ocs的可执行程序和上一步lib里面的文件全部复制到OCS文件夹中。并将lib文件删除。

9.进入qt的安装目录,找到platforms目录,博主的目录是:

/usr/lib64/qt5/plugins/platforms

10.将第5步的copy.sh放到platforms目录中,并运行./copylib.sh libqxcb.so,这时也会得到一个lib文件加-libqxcb.so的库文件夹。

注:xcb是移植的重要文件,如果拷贝错误将不能在目标主机运行。

11.将platforms文件夹整个拷贝到OCS,并删除原先文件夹中的libxcb.so库文件夹。

12.将拷贝后的库文件夹的东西全部放到OCS目录下。即将OCS/platforms/lib/* 拷贝到OCS下。并删除OCS/platforms/lib文件夹及其所属文件。

13.在OCS文件夹中新建脚本ocs.sh,添加下面内容后赋值赋值权限。chmod 777 ocs.sh 。

#!/bin/sh appname=`basename $ |sed s,\.sh$,,`

dirname=`dirname $` tmp="${dirname#?}"

if [ "${dirname%$tmp}" != "/"]; then dirname=$PWD/$dirname fi LD_LIBRARY_PATH=$dirname export LD_LIBRARY_PATH $dirname/$appname "$@"

到现在,可以将OCS文件夹拷贝到目标主机上运行了。在目标主机上运行程序是采用./ocs.sh运行,而不是直接点击ocs.

注,

全程对库文件夹的拷贝都是拷贝文件夹里面的内容,而不需要带lib目录。我们的层次结构OCS/platforms/,没有其他。

查找platforms文件方法:find / -name "platforms".

拷贝文件夹:cp -R xx/xx xxx/

无视名称移动文件:mv -f xx/xx/xx/

后记:

linux下免安装打包就到这里了,遇到问题欢迎留言哦。

linux cp并打包目录,【linux】【qt5】【将linux下的qt程序打包发布(完全适用于中标麒麟)】...相关推荐

  1. linux下将qt程序打包成appimage程序

    linux下将qt程序打包成appimage程序 一.环境准备 1.1下载linuxdeployqt的程序(打包qt程序的工具) https://github.com/probonopd/linuxd ...

  2. qt调用linux 进程,Linux 下qt 程序打包发布(使用linuxdelpoyqt ,shell 脚本)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u014746574/article/d ...

  3. Linux 下qt 程序打包发布(使用linuxdelpoyqt ,shell 脚本)

    Linux 下qt 程序打包发布(使用linuxdelpoyqt ,shell 脚本) 转载于:https://www.cnblogs.com/zhehan54/p/9549017.html

  4. Jenkins系列:5、wsl下的Jenkins编译Windows下的Qt程序并自动打包成exe

    Jenkins系列:5.wsl下的Jenkins编译Windows下的Qt程序并自动打包成exe 文章目录 Jenkins系列:5.wsl下的Jenkins编译Windows下的Qt程序并自动打包成e ...

  5. Qt程序打包成安装包exe

    本章介绍把Qt开发的程序打包成安装包的方法,程序打包成install.exe,可双击安装,有默认安装路径,也可以选择安装目录,自动生成桌面快捷方式和开始菜单选项,可以在操作系统–>设置–> ...

  6. Qt程序打包发布方法(使用官方提供的windeployqt工具)

    Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.group Qt 官方开发环 ...

  7. Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.group Qt 官方

    Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.group Qt 官方开发环 ...

  8. linux-ubuntu下使用linuxdeployqt+appimagetool将qt程序打包成xxx.AppImage文件

    linux-ubuntu下使用linuxdeployqt+appimagetool将qt程序打包成xxx.AppImage文件 xuxiang 7 2019-09-18 21:07 下文中提及的inu ...

  9. QT程序打包配置手册

    QT程序打包配置手册 0-概述 1-获取动态链接库 2-程序打包 2.1.工具 2.2.工具简介 2.3.准备文件 2.4.程序打包过程 2.5.HEU_DISdemo安装过程 3.结语 0-概述 当 ...

最新文章

  1. SQLServer数据库如何收缩日志空间?
  2. Docker windows 安装MySql和Tomcat
  3. Jenkins环境搭建(2)-搭建jmeter+ant+jenkins自动化测试环境
  4. suoi46 最大和和 (线段树)
  5. Eclipse中JRE System Library、Web App Libraries的作用
  6. oracle大量数据删除
  7. 更改多维数组的数据结构形式
  8. 求向量的垂线_高考数学填空题如何快速求直线关于直线对称的直线方程
  9. digester java_commons-digester 升级到 commons-digester3 的坑
  10. 计算机病毒正确探讨目录,毕业论文-计算机病毒的正确防御探讨.doc
  11. android 人脸相似度,微软“我们”正式发布 :测试人脸相似度
  12. 最速下降法matlab全局最小值_matlab实现最速下降法和dfp求函数最小值
  13. VBlog 纯前端博客 2018.5.15更新
  14. 集成 rootbeer 和 小米mix2s Root 流程
  15. Gmail手机客户端软件
  16. 虚拟摄像头之DirectShow虚拟摄像头开发
  17. How does a C compiler find that -lm is pointing to the file libm.a?
  18. flutter comsumer局部刷新的问题
  19. 即时通讯(IM)开源项目OpenIM每周迭代版本发布-音视频实时通话-v2.0.4
  20. 开发实用Linux命令

热门文章

  1. python上传钉钉媒体文件_python 上传钉钉图片
  2. 最新冰盾DDoS防火墙V9.1 新增防护功能更强大
  3. redis的活动倒计时秒杀问题
  4. ps保存图片logo背景透明
  5. 华为操作系统,阿里巴巴飞天操作系统 ------- 操作系统生态
  6. python做地图热力图保存为png_Python如何实现热力图?可视化入库图实战演示
  7. 使用Aria2+AriaNg自建离线下载
  8. 最全微信红包分配算法,不只是二倍均值那么简单
  9. Service com.android.exchange.ExchangeService has leaked ServiceConnection
  10. 如何用Java微信扫码实现签到_详解JAVA后端实现统一扫码支付:微信篇