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

相关推荐
艺杯羹5 小时前
1Panel 装好后 ufw 仍是 inactive:一次服务器安全盲区复盘
服务器·数据库·安全·网络安全·系统架构·实战·1panel
code2cat6 小时前
【随笔】MCP工具重试:任务已经创建,响应丢了怎么办
数据库·mcp
码农小河667 小时前
基于PHP的电商后台蜜罐系统
开发语言·php
starzy19907 小时前
深入理解Scala柯里化函数:函数链式变换
开发语言·scala
ShineWinsu7 小时前
对于Qt:QTreeWidget常见属性以及QTreeWidgetItem类的解析
开发语言·c++·qt·gui·客户端·多叉树·qtreewidget
落羽的落羽8 小时前
【C++】C++17的主要特性
linux·服务器·开发语言·c++·算法·机器学习
wuyk5558 小时前
Spider-第10讲-SQLite持久化与去重
数据库·爬虫·sqlite
总要学点什么8 小时前
第108篇:三维特效-图片轨迹线效果——把贴图滚成一串箭头,想用它的本色反而整条消失
开发语言·javascript·ecmascript·gis·webgl·材质·cesium
乌暮10 小时前
Spring AOP 与 Spring 事务:用大白话彻底理解原理与实践
java·数据库·spring boot·后端·sql·学习·spring
小此方10 小时前
Re:Mysql数据库基础篇(十二):什么是事务、事务解决了什么问题、事务的四大属性、事务的操作方式
数据库·mysql