ldd打包程序,第一次打包qt程序

2022-11-11  本文已影响0人  寽虎非虫003

一点题外话

第一次打包QT程序果然不是很顺利啊,被QTplugins折腾的够呛。

直接上脚本

#!/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 ““

上一篇 下一篇

猜你喜欢

热点阅读