deploylib.sh 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. #! /bin/bash
  2. Qtgccdir=''
  3. if [ ${#Qtgccdir} -lt 6 ]; then
  4. echo "Because not set gcc_64 , so auto find gcc_64 "
  5. optfiles=`find /opt -name 'gcc_64'`
  6. for entry in $optfiles
  7. do
  8. if [ ${entry:0-6:6} == "gcc_64" ]; then
  9. if [ -d $entry ]; then
  10. Qtgccdir="$entry"
  11. echo -e "\033[32m"" -----found gccdir:"$Qtgccdir"\033[0m"
  12. fi
  13. fi
  14. done
  15. fi
  16. if [ ${#Qtgccdir} -lt 6 ]; then
  17. if [ -d '/usr/lib/aarch64-linux-gnu/qt5' ]; then
  18. Qtgccdir='/usr/lib/aarch64-linux-gnu/qt5'
  19. else
  20. echo "if NVIDIA,please sudo apt install qt"
  21. fi
  22. fi
  23. if [ ${#Qtgccdir} -lt 6 ]; then
  24. echo -e "\033[31m"" -----not found gccdir: so exit""\033[0m"
  25. exit 1
  26. fi
  27. QtPlatformdir=$Qtgccdir/plugins/platforms
  28. QtLibDir=$Qtgccdir/lib
  29. export LD_LIBRARY_PATH=./thirdpartylib/FastRTPS/lib/libarm64:$LD_LIBRARY_PATH
  30. if [ "$#" -lt 1 ]; then
  31. echo "没有输入"
  32. echo "$1"
  33. exit
  34. fi
  35. ignore_lib_name=(
  36. libstdc++.so.*
  37. libm.so.*
  38. libgcc_s.so.*
  39. libc.so.*
  40. libpthread.so.*
  41. libGL.so.*
  42. libz.so.*
  43. libgthread*
  44. libglib*
  45. libexpat*
  46. libxcb*
  47. libdl.so.*
  48. libxshmfence*
  49. libglapi.so.*
  50. libXext.so.*
  51. libXdamage.so.*
  52. libXfixes.so.*
  53. libX11*
  54. libXxf86vm.so.*
  55. libdrm.so.*
  56. libpcre.so.*
  57. libXau.so.*
  58. libXdmcp.so.*
  59. )
  60. EXE="$1"
  61. PWD=`pwd`
  62. rm -rf app
  63. mkdir app
  64. cd app
  65. mkdir lib
  66. cd ..
  67. mkdir commonlib
  68. cd commonlib
  69. mkdir platforms
  70. cp $QtPlatformdir/libqxcb.so platforms
  71. cd platforms
  72. mkdir lib
  73. libfiles=`ldd libqxcb.so | awk '{ if(match($3,"^/"))printf("%s "),$3 }'`
  74. cp $libfiles $PWD/lib
  75. cd ..
  76. mkdir lib
  77. cp $QtLibDir/libQt5DBus.s* $PWD/lib
  78. cp $QtLibDir/libQt5XcbQpa.s* $PWD/lib
  79. rm -rf $PWD/platforms/lib
  80. cd platforms
  81. patchelf --set-rpath '$ORIGIN/../lib/' libqxcb.so
  82. cd ..
  83. cd ..
  84. files=`ldd $EXE | awk '{ if(match($3,"^/"))printf("%s "),$3 }'`
  85. cp $files $PWD/app/lib
  86. cp $PWD/commonlib/lib/* $PWD/app/lib
  87. cp -r $PWD/commonlib/platforms $PWD/app
  88. cp $EXE $PWD/app/lib
  89. for x in ${ignore_lib_name[@]}
  90. do
  91. rm -f $PWD/app/lib/${x}
  92. done
  93. rm -rf commonlib
  94. cd app
  95. cd lib
  96. patchelf --set-rpath '$ORIGIN' $EXE
  97. if [ "$?" != 0 ];then
  98. echo -e "\e[31m deploy.sh: patchelf $EXE faile, Ensure patchelf tool installed\e[0m"
  99. exit 1
  100. fi
  101. cd ..
  102. cd ..
  103. cp -r app $PWD/deploy/
  104. rm -rf app