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

ubuntu20.04 使用linuxdeployqt打包一个QT程序

问题描述:ubuntu 打包一个QT程序

解决方法:

1.安装linuxdeployqt

linuxdeployqt的github网址linuxdeplyoqt

我下载好了,适合大家的直接拿,已经改好名字为linuxdeployqt

链接: https://pan.baidu.com/s/1r25aVwRAh-sx4ksadj6NXg?pwd=buvk 提取码: buvk

(1)修改权限

sudo chmod a+x linuxdeployqt

(2)拷贝系统目录下

sudo cp linuxdeployqt /usr/local/bin/

(3)验证

linuxdeployqt -version

2.生成可执行文件

(1).pro加入代码

TEMPLATE = app #这生成一个exe
QMAKE_LFLAGS += -no-pie

注意事项:代码放在.pro文件末端

(2)选择release,没有就添加

(3)最后生成可执行文件,文件属性是executable

3.正式打包

(1)创建一个文件夹,把刚生成可执行文件复制到可执行文件下

(我创建的文件夹是execute)

(2)在文件夹下,打开终端执行代码

linuxdeployqt untitled2 -appimage

这时候可能会报这个错误

就在desktop文件下加入

Categories=Application;

再重新执行

linuxdeployqt untitled2 -appimage

生成文件

4.执行脚本-拷贝依赖库

再刚刚的文件夹下打开一个新的终端,创建两个脚本一个pack.sh 一个以你可执行文件名字为名的脚本

输入

 gedit pack.sh

写入

#!/bin/sh  
exe="untitled2" #程序名称
des="/home/wxw/QT/build-untitled2-unknown-Release/execute" #创建文件夹的位置
deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }')  
cp $deplist $des

再输入

 gedit untitled.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 "$@"

终端执行

chmod a+x pack.sh
sudo ./pack.sh

就此完成了,Done


http://www.mrgr.cn/news/94066.html

相关文章:

  • 数据结构(蓝桥杯常考点)
  • 学习知识的心理和方法杂记-03
  • 安卓Android与iOS设备管理对比:企业选择指南
  • 【LangChain】理论及应用实战(3)
  • java-单列模式-final-枚举
  • 保姆级别使用Python实现“机器学习“案例
  • osg安装编译第三方,完整详细过程。 libtiff/tif config.vc.hdoes not exist
  • 【Golang】第一弹-----初步认识GO语言
  • 【A2DP】蓝牙A2DP协议剖析:从架构到规范
  • centos 7 安装apache服务
  • upload-labs-master通关攻略(17~19)
  • 瑞芯微RK3576(1)-硬件设计
  • DeepIn Wps 字体缺失问题
  • 暑期第一面oωo, TME一面面经
  • Linux上位机开发实战(x86和arm自由切换)
  • 【性能测试】Jmeter如何做一份测试报告(3)
  • 大模型架构记录3-1-Gradio 入门
  • 【FreeRTOS】FreeRTOS操作系统在嵌入式单片机上裸机移植
  • Maven的依赖管理
  • ubuntu 解决 DNS 代理设置错误,导致不能上网的 DoH、DoT问题