用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打包