#! /bin/bash Qtgccdir='/usr/lib/aarch64-linux-gnu/qt5' QtPlatformdir=$Qtgccdir/plugins/platforms QtLibDir=$Qtgccdir/lib if [ "$#" -lt 1 ]; then echo "没有输入" echo "$1" exit fi ignore_lib_name=( libstdc++.so.* libm.so.* libgcc_s.so.* libc.so.* libpthread.so.* libGL.so.* libz.so.* libgthread* libglib* libexpat* libxcb* libdl.so.* libxshmfence* libglapi.so.* libXext.so.* libXdamage.so.* libXfixes.so.* libX11* libXxf86vm.so.* libdrm.so.* libpcre.so.* libXau.so.* libXdmcp.so.* ) EXE="$1" PWD=`pwd` rm -rf app mkdir app cd app mkdir lib cd .. mkdir commonlib cd commonlib mkdir platforms cp $QtPlatformdir/libqxcb.so platforms cd platforms mkdir lib libfiles=`ldd libqxcb.so | awk '{ if(match($3,"^/"))printf("%s "),$3 }'` cp $libfiles $PWD/lib cd .. mkdir lib cp $QtLibDir/libQt5DBus.* $PWD/lib cp $QtLibDir/libQt5XcbQpa.* $PWD/lib rm -rf $PWD/platforms/lib cd platforms cd .. cd .. files=`ldd $EXE | awk '{ if(match($3,"^/"))printf("%s "),$3 }'` cp $files $PWD/app/lib cp $PWD/commonlib/lib/* $PWD/app/lib cp -r $PWD/commonlib/platforms $PWD/app cp $EXE $PWD/app for x in ${ignore_lib_name[@]} do rm -f $PWD/app/lib/${x} done rm -rf commonlib cd app patchelf --set-rpath '$ORIGIN/lib/' $EXE cd platforms patchelf --set-rpath '$ORIGIN/../lib/' libqxcb.so cd .. cd .. cp -r app $PWD/deploy/ rm -rf app