一点题外话
第一次打包QT
程序果然不是很顺利啊,被QT
的plugins
折腾的够呛。
直接上脚本
#!/bin/sh
#全问等号两边不能有空格
# 打包用的程序
exe="./out/bin/3DSoft" #发布的程序名称
des="pack" #打包程序路径
# 设置打包路径
# if [-d "/${des}/"];then
# if [! -d "pack"];then
# mkdir $des
# fi
mkdir $des
# 查找基本的链接库,然后拷贝到目标文件夹,这一步可以优化,剔除掉一些系统自带的库
deplist=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }')
cp $exe $des
for file in $deplist
do
echo "\033[32m copy file $file \033[0m"
done
cp $deplist $des
# 处理一些需要的配置文件
inis=$(ls *.ini *.dcf)
for file in $inis
do
echo "\033[42;37m copy file $file \033[0m"
done
cp $inis $des
# 可能是隐式依赖的库
cp ~/Depend/3rdParty/SWL/lib/linux/libcyusbserial.so $des
cp ~/Depend/buildIn/Algorithm/lib/libAlgo_coreAlgo.so.0 $des
cp ~/Depend/3rdParty/log/libLog.so $des
#处理qt使用ldd时候会遗漏的东西
# $HOME 是主目录
qtplugin="${HOME}/Qt/6.2.1/gcc_64/plugins"
for path in $(ls $qtplugin)
do
echo "\033[36m copy path $path \033[0m"
cp -r $qtplugin/$path $des
done
# cp ~/Qt/6.2.1/gcc_64/lib/libQt6XcbQpa.so $des
cp ~/Qt/6.2.1/gcc_64/lib/libQt6XcbQpa.so.6 $des
# cp ~/Qt/6.2.1/gcc_64/lib/libQt6XcbQpa.so.6.2.1 $des
# cp ~/Qt/6.2.1/gcc_64/lib/libQt6DBus.so $des
cp ~/Qt/6.2.1/gcc_64/lib/libQt6DBus.so.6 $des
# cp ~/Qt/6.2.1/gcc_64/lib/libQt6DBus.so.6.2.1 $des
# 压缩
tar -czvf pack.tar.xz pack
rm -r pack
一些解决问题过程中的参考
解决qt.qpa.plugin: Could not find the Qt platform plugin “xcb“ in ““
网友评论