当前位置: 首页 > news >正文

ubuntu 环境下的QT程序打包

很多的时候 需要将自己写的QT 程序发布一下  所以今天教一下 怎么在ubuntu 环境下将自己的写的Qt 程序打包打包是为了不依赖 开发环境 和开发的库。

1. QtCreate使用Release版本编译

2. 从可运行程序的文件中拿出可执行文件,例:untitled23424242

3. 终端下使用ldd命令查看需要的连接库,例:ldd untitled23424242
4. 把ldd查询到的所有需要的库导出

这里提供一个脚本将ldd打印出来的依赖库复制到指定路径:

 

#!/bin/sh  
  
exe="untitled23424242" #发布的程序名称   这是我的可执行程序的名字
des="/home/alvin/Desktop/untitled23424242/" #你的路径   这是我的可执行文件的路径 对应的相应的更改
  
deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }')  
cp $deplist $des 

 

说明:exe :要发布的程序名称 des:指定复制的路径
   对应的相应的要更改

改完之后设置 脚本的权限 

sudo chmod 777 dabao.sh

运行脚本

./dabao.sh 

你会发现可执行文件依赖的 库复制到 你指定的路径里了

5. 编写.sh文档 并将它放在与步骤4同一目录下(.sh文件命名必须与可执行文件名字一样例:可执行文件名 untitled23424242, .sh 文件名为 untitled23424242.sh)
.sh文件代码如下:

 

 

    #!/bin/sh  
    appname=`basename $0 | sed s,\.sh$,,`  
      
    dirname=`dirname $0`  
    tmp="${dirname#?}"  
      
    if [ "${dirname%$tmp}" != "/" ]; then  
    dirname=$PWD/$dirname  
    fi  
    LD_LIBRARY_PATH=$dirname  
    export LD_LIBRARY_PATH  
    $dirname/$appname "$@"  

 

6. 执行这个.sh文件:

可能因为不行执行需更改权限:

chmod +x untitled23424242.sh

 

转载于:https://www.cnblogs.com/wanghuixi/p/8621853.html

相关文章:

  • dom4j解析xml
  • sublime text less安装踩坑图文讲解(less无法生成css)
  • PHP中遍历关联数组的方法
  • opencv再学习之路(五)---灰度直方图显示
  • 在windows2003上部署MVC4.0需要具备的环境
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • ContentProvider介绍
  • 10.19 iptables规则备份和恢复10.20 firewalld的9个zone 10.21 firewalld关于zone的操作 10.22 firewalld关于service的操作...
  • C# 屏幕监控 自动截屏程序 主窗体隐藏,仅在进程中显示
  • 手机加载优化 - 2x、3x图
  • 清明小感
  • [win7-oracle处理方法]--java.lang.Exception: Exception in sending Request :: null(转)
  • 0323-方法(函数)
  • 把每天当成人生第一天来过,把每一天当成人生最后一天来过
  • 第六届蓝桥杯java b组第五题
  • 「面试题」如何实现一个圣杯布局?
  • 0x05 Python数据分析,Anaconda八斩刀
  • ES10 特性的完整指南
  • Git学习与使用心得(1)—— 初始化
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Making An Indicator With Pure CSS
  • webpack入门学习手记(二)
  • yii2权限控制rbac之rule详细讲解
  • 详解NodeJs流之一
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • #define,static,const,三种常量的区别
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • $.ajax()参数及用法
  • (2.2w字)前端单元测试之Jest详解篇
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (七)理解angular中的module和injector,即依赖注入
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .net core 依赖注入的基本用发
  • .Net CoreRabbitMQ消息存储可靠机制
  • .NET 回调、接口回调、 委托
  • .NET 解决重复提交问题
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .net和php怎么连接,php和apache之间如何连接
  • .NET开发不可不知、不可不用的辅助类(一)
  • .NET中的Exception处理(C#)
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken
  • /usr/bin/env: node: No such file or directory
  • [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)
  • [Android] 240204批量生成联系人,短信,通话记录的APK
  • [C\C++]读入优化【技巧】
  • [C++]18:set和map的使用
  • [CTO札记]如何测试用户接受度?
  • [Effective C++读书笔记]0012_复制对象时勿忘其每一部分
  • [FFmpeg学习]从视频中获取图片
  • [Foreman]解决Unable to find internal system admin account
  • [git] windows系统安装git教程和配置
  • [Go WebSocket] 多房间的聊天室(五)用多个小锁代替大锁,提高效率
  • [Gradle] 在 Eclipse 下利用 gradle 构建系统