ubuntu打包 qt 程序,不用每次都用linuxdeployqt打包

用linuxdeployqt打包太麻烦,每次程序编译都要用linuxdeployqt打包一次,而且每次都要很长时间,通过研究得出一个新的打包方法

1.用用linuxdeployqt得出依赖的库文件(只要没有增加新模块,只要用一次就可以)

2.把xcb相关的文件放到和运行文件同一目标下即可(在plugins目标下有platforms、xcbglintegrations文件夹是xcb运行相关的)如下图所示

3.配置依赖路径库路径

LD_LIBRARY_PATH=dirname/lib:dirname/platforms:$dirname/xcbglintegrations

export LD_LIBRARY_PATH

或者在运行时设置如下:我这里用脚本启动

#!/bin/sh

获取应用名称(如应用名称为app,那么脚本为app.sh

appname=`basename 0 \| sed s,\\.sh,,`

获取应用当前目录

dirname=`dirname $0`

tmp="${dirname#?}"

判断目录是不是根目录

if [ "{dirname%tmp}" != "/" ];

then

dirname=PWD/dirname

fi

将当前目录(库所在目录)加入环境变量

LD_LIBRARY_PATH=dirname/lib:dirname/platforms:$dirname/xcbglintegrations

export LD_LIBRARY_PATH

运行

dirname/appname "$@"

这就可以编译好后直接拷贝文件到其他机器运行,不用每次都要用linuxdeployqt打包

相关推荐
waving-black3 分钟前
利用frp和腾讯云服务器将内网暴露至外网(内网穿透)
linux·服务器·腾讯云·frp·内网穿透
stormsha15 分钟前
Linux中su与sudo命令的区别:权限管理的关键差异解析
linux·运维·服务器·鸿蒙系统·ux·batch命令
新加坡内哥谈技术1 小时前
Meta计划借助AI实现广告创作全自动化
运维·人工智能·自动化
zyjyyds1131 小时前
win11系统 Docker Desktop 突然提示Docker Engine stopped解决情况之一
运维·docker·容器
Altairr1 小时前
Docker基础(一)
运维·docker·容器·eureka
筏.k1 小时前
grep、wc 与管道符快速上手指南
linux
文牧之1 小时前
PostgreSQL 的扩展pageinspect
运维·数据库·postgresql
Johny_Zhao1 小时前
华为MAAS、阿里云PAI、亚马逊AWS SageMaker、微软Azure ML各大模型深度分析对比
linux·人工智能·ai·信息安全·云计算·系统运维
CodeOfCC1 小时前
c语言 封装跨平台线程头文件
linux·c语言·windows
科文小白狼1 小时前
Linux下VSCode开发环境配置(LSP)
linux·vscode·里氏替换原则·lsp