目标:把Qt程序部署到新的树莓派中。
平台:树莓派
工作:把Qt程序和运行环境分别打包
一、程序打包过程如下,仅供参考:
1.新建文件夹A,把程序拷贝到文件夹中。
2.使用ldd获取依赖关系,并复制到文件夹A。脚本如下:
#!/bin/bash
exe="/home/pi/pack/exe" des="/home/pi/pack/" deplist=$(ldd $exe | awk '{if (match($3,"/")){printf("%s "),$3}}') cp $deplist $des
注意:部分文件和运行环境包中文件是一样的,可以自己过滤掉
3.在文件夹A中,新建运行程序的同名sh脚本,如下:
#!/bin/bash #获取和脚本同名的程序名称和路径 path=$(cd 'dirname ${BASH_SOURCE}';pwd) name=$(basename $BASH_SOURCE) name=${name%.*} #设置Qt5程序运行环境变量 export LD_LIBRARY_PATH=$path:/usr/local/qt5pi/lib export QT_QPA_PLATFORM=eglfs export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/local/qt5pi/plugins/ export QT_QPA_FONTDIR=/usr/local/qt5pi/lib/fonts export QML_IMPORT_PATH=/usr/local/qt5pi/qml export QML2_IMPORT_PATH=/usr/local/qt5pi/qml export QTDIR=/usr/local/qt5pi #打开Qt插件调试信息,方便查看插件加载错误 export QT_DEBUG_PLUGINS=1 $path/$name --platform xcb
部署好运行环境后,双击或者终端运行sh脚本。
二、打包运行环境
把/usr/local/qt5pi压缩成包,部署到新的树莓派中,同样的目录。(可以根据需要精简,如果不在乎大小,可以不做任何变化)