在Linux下QT程序打包發佈

程序以test爲例:app

1. QtCreate使用Release版本編譯

2. 從可運行程序的文件中拿出可執行文件,例:test

3. 終端下使用ldd命令查看須要的鏈接庫,例:ldd test

4. 把ldd查詢到的全部須要的庫導出

這裏提供一個腳本loadlib.sh 將ldd打印出來的依賴庫複製到指定路徑:
ui

#!/bin/sh 
exe="test" #發佈的程序名稱 

des="/home/flyer/QtProject/build-test-Desktop-Release/ReleaseTest" #執行文件的路徑 

deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }') 
cp $deplist $des  

說明:exe :要發佈的程序名稱 des:指定so庫文件複製的路徑 spa


5. 編寫.sh文檔 並將它放在與步驟4同一目錄下(.sh文件命名必須與可執行文件名字同樣例:可執行文件名 test, .sh 文件名爲 test.sh)
文檔

.sh文件代碼以下:
編譯

#!/bin/sh 
class

appname=`basename $0 | sed s,\.sh$,,`  
test

dirname=`dirname $0` 
awk

tmp="${dirname#?}"   
sed


if [ "${dirname%$tmp}" != "/" ]; then 
終端

dirname=$PWD/$dirname 

fi 

LD_LIBRARY_PATH=$dirname 

export LD_LIBRARY_PATH 

$dirname/$appname "$@"  


6. 執行這個.sh文件:

需更給這兩新編寫的sh文件添加改權限:

chmod +x loadlib.sh

chmod +x test.sh

執行sh

./loadlib.sh

./test.sh

Ok!大功告成,將這個文件複製到其餘電腦上就能夠運行了。