Ubuntu下使用脚本打包QT程序

By | 2019-10-15

Ubuntu版本:18.04

QT版本:5.7.0

例如程序名为GPIO-TEST,请将文中所有GPIO-TEST修改为你自己的程序名

1. 找个目录创建文件夹用来存放打包的程序,/zdisk/MY_GPIO-TEST

2. 将工程用Release模式编译,直接运行项目就行了

3. 打开编译出文件夹的文件,我的路径如下:

/zdisk/qt-project/build-GPIO-TEST-Desktop_Qt_5_7_0_GCC_64bit-Release

4. 在Release文件夹创建文件copylib.sh,并修改权限为777,文件内容如下:

LibDir=$PWD"/lib"
Target=$1

lib_array=($(ldd $Target | grep -o "/.*" | grep -o "/.*/[^[:space:]]*"))

$(mkdir $LibDir)

for Variable in ${lib_array[@]}
do
    cp "$Variable" $LibDir

5. 打开终端进到当前文件夹,输入./copylib.sh GPIO-TEST,会产生一个lib文件夹,这里称为GPIO-TEST库文件
脚本实际上是调用了ldd GPIO-TEST指令获得GPIO-TEST运行时需要哪些库,并将库都复制放到当前目录的lib文件夹中

6. 将GPIO-TEST的二进制文件和GPIO-TEST的库文件夹里的所有的文件复制到MY_GPIO-TEST文件夹中

7. 进入QT的安装目录,找到platforms文件夹,我的路径如下:

/opt/Qt5.7.0/5.7/gcc_64/plugins/platforms

8. 将上文的copylib.sh放到platforms文件夹中,并运行./copylib.sh libqxcb.so,这时会得到libqxcb.so的库文件夹

9. 将libqxcb.so的库文件夹的所有文件和platforms文件夹复制到MY_GPIO-TEST文件夹中

10. 在MY_GPIO-TEST文件夹中新建脚本GPIO-TEST.sh,执行chmod 777 GPIO-TEST.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 "$@"

11. 到这里就基本完成了,将MY_GPIO-TEST文件夹复制到需要运行程序的目标主机即可,在目标主机中,运行程序,都采用 ./GPIO-TEST.sh 而不是./GPIO-TEST,即运行程序的sh脚本,而不是二进制文件

以上就是在ubuntu下使用脚本打包QT程序的方法!

参考链接:https://blog.csdn.net/z3512498/article/details/64922180

发表评论

邮箱地址不会被公开。 必填项已用*标注