linux cp并打包目录,【linux】【qt5】【将linux下的qt程序打包发布(完全适用于中标麒麟)】...
前言:
最近因项目需求,需要打包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程序打包发布(完全适用于中标麒麟)】...相关推荐
- linux下将qt程序打包成appimage程序
linux下将qt程序打包成appimage程序 一.环境准备 1.1下载linuxdeployqt的程序(打包qt程序的工具) https://github.com/probonopd/linuxd ...
- qt调用linux 进程,Linux 下qt 程序打包发布(使用linuxdelpoyqt ,shell 脚本)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u014746574/article/d ...
- Linux 下qt 程序打包发布(使用linuxdelpoyqt ,shell 脚本)
Linux 下qt 程序打包发布(使用linuxdelpoyqt ,shell 脚本) 转载于:https://www.cnblogs.com/zhehan54/p/9549017.html
- Jenkins系列:5、wsl下的Jenkins编译Windows下的Qt程序并自动打包成exe
Jenkins系列:5.wsl下的Jenkins编译Windows下的Qt程序并自动打包成exe 文章目录 Jenkins系列:5.wsl下的Jenkins编译Windows下的Qt程序并自动打包成e ...
- Qt程序打包成安装包exe
本章介绍把Qt开发的程序打包成安装包的方法,程序打包成install.exe,可双击安装,有默认安装路径,也可以选择安装目录,自动生成桌面快捷方式和开始菜单选项,可以在操作系统–>设置–> ...
- Qt程序打包发布方法(使用官方提供的windeployqt工具)
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 官方
Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.group Qt 官方开发环 ...
- linux-ubuntu下使用linuxdeployqt+appimagetool将qt程序打包成xxx.AppImage文件
linux-ubuntu下使用linuxdeployqt+appimagetool将qt程序打包成xxx.AppImage文件 xuxiang 7 2019-09-18 21:07 下文中提及的inu ...
- QT程序打包配置手册
QT程序打包配置手册 0-概述 1-获取动态链接库 2-程序打包 2.1.工具 2.2.工具简介 2.3.准备文件 2.4.程序打包过程 2.5.HEU_DISdemo安装过程 3.结语 0-概述 当 ...
最新文章
- SQLServer数据库如何收缩日志空间?
- Docker windows 安装MySql和Tomcat
- Jenkins环境搭建(2)-搭建jmeter+ant+jenkins自动化测试环境
- suoi46 最大和和 (线段树)
- Eclipse中JRE System Library、Web App Libraries的作用
- oracle大量数据删除
- 更改多维数组的数据结构形式
- 求向量的垂线_高考数学填空题如何快速求直线关于直线对称的直线方程
- digester java_commons-digester 升级到 commons-digester3 的坑
- 计算机病毒正确探讨目录,毕业论文-计算机病毒的正确防御探讨.doc
- android 人脸相似度,微软“我们”正式发布 :测试人脸相似度
- 最速下降法matlab全局最小值_matlab实现最速下降法和dfp求函数最小值
- VBlog 纯前端博客 2018.5.15更新
- 集成 rootbeer 和 小米mix2s Root 流程
- Gmail手机客户端软件
- 虚拟摄像头之DirectShow虚拟摄像头开发
- How does a C compiler find that -lm is pointing to the file libm.a?
- flutter comsumer局部刷新的问题
- 即时通讯(IM)开源项目OpenIM每周迭代版本发布-音视频实时通话-v2.0.4
- 开发实用Linux命令
热门文章
- python上传钉钉媒体文件_python 上传钉钉图片
- 最新冰盾DDoS防火墙V9.1 新增防护功能更强大
- redis的活动倒计时秒杀问题
- ps保存图片logo背景透明
- 华为操作系统,阿里巴巴飞天操作系统 ------- 操作系统生态
- python做地图热力图保存为png_Python如何实现热力图?可视化入库图实战演示
- 使用Aria2+AriaNg自建离线下载
- 最全微信红包分配算法,不只是二倍均值那么简单
- Service com.android.exchange.ExchangeService has leaked ServiceConnection
- 如何用Java微信扫码实现签到_详解JAVA后端实现统一扫码支付:微信篇