linux下打包QT程序

来源:互联网 发布:爱色丽校色软件 编辑:程序博客网 时间:2024/05/22 07:43

一:总体思路

  1. 把QT写的程序整理好,生成release版本。
  2. 利用下面的copylib.sh脚本文件,拷贝release版本的依赖库。
  3. 把/usr/lib/arm-linux-gnueabihf/qt5/plugins/platforms拷贝到release所在文件夹(建议单独拿出来release版本的程序)
  4. 找出platforms中libqxcb.so的依赖库
  5. 把2,4产生的依赖库放在一起,然后放release版本软件,然后放platforms文件夹。
  6. 把第二个脚本文件powerCut.sh改成自己软件的名字,例如:你的release软件名叫:hello,那么就把这个脚本名字改为hello.sh
  7. 然后执行一次第二个脚本。
  8. 开始移植,若无权限,记着用chmod a+x *来改变权限,并且运行的是第二个脚本,而不是release版本的软件名。

二:copylib.sh

#!/bin/bashLibDir=$PWD"/lib"Target=$1lib_array=($(ldd $Target | grep -o "/.*" | grep -o "/.*/[^[:space:]]*"))$(mkdir $LibDir)for Variable in ${lib_array[@]}do    cp "$Variable" $LibDirdone

三:PowerCut.sh

appname=`basename $0 | sed s,\.sh$,,`dirname=`dirname $0`tmp="${dirname#?}"if [ "${dirname%$tmp}" != "/" ]; thendirname=$PWD/$dirnamefiLD_LIBRARY_PATH=$dirnameexport LD_LIBRARY_PATH$dirname/$appname "$@"

四:注意事项

  1. 使用静态库的程序,编译过release版本的程序之后是不需要把静态库带着的。
  2. 利用qtLinguist做的多语言,要把*.qm文件带着。
  3. 图片资源文件是不需要带着的。