linux下Qt打包

1.新建Demo文件件,并将二进制可执行文件MiMouse放置在目录内

2.在Demo文件夹下新建copy.sh文件

touch copy.sh

copy.sh文件内容如下

#!/bin/bash
LibDir=$PWD"/lib"  #获取lib目录路径
Target=$1
lib_array=($(ldd $Target | grep -o "/.*" | grep -o "/.*/[^[:space:]]*"))
$(mkdir $LibDir)   #创建lib目录
for Variable in ${lib_array[@]}  #循环所有依赖的动态库路径
do
    cp "$Variable" $LibDir  #拷贝到lib目录中
done

3.给copy.sh文件赋予权限并执行

chmod 777 copy.sh 
./copy.sh MiMouse 

4.将生成的lib目录中的所有文件移动到上层,与可执行文件同级,然后将lib目录删除

mv lib/* ./
rmdir lib/

5.进入QT安装目录将copy.sh放到该目录下并执行

cd /usr/lib/loongarch64-linux-gnu/qt5/plugins

6.将copy.sh文件移动到platforms文件夹下并执行

./copy.sh libqxcb.so

7.将platforms整个目录移动到Demo文件夹下并将链接库移动到Demo目录,删除lib文件夹和copy.sh文件

mv platforms/lib/* ./
rmdir platforms/lib/
rm platforms/copy.sh

8.移动一些Qt配置文件

在Qt安装目录将audio文件夹 imageformats文件夹移动到Demo文件夹下

9.在Demo目录下编写.sh运行脚本,脚本名必须与可执行程序一致

touch MiMouse.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=$PATH:/usr/local/lib:$PWD
$dirname/$appname "$@"
chmod 777 MiMouse.sh

10 现在可以将Demo文件夹发送给目标机器了,执行方法

sh MiMouse.sh

Guess you like

Origin blog.csdn.net/yonggandess/article/details/121264903