1. 程式人生 > >Ubuntu下Qt軟體打包流程

Ubuntu下Qt軟體打包流程

1.在Qt Creator中將需要打包的專案配置為Release模式,然後構建專案,在Release目錄下生成可執行檔案(例:myApp);

2.新建一個資料夾作為輸出目錄(例:output),將Release目錄下的可執行檔案myApp拷貝到輸出目錄output,並執行chmod +x myApp

3.開啟終端,cd到輸出目錄output中,然後執行 ldd myApp 可以檢視myApp依賴的所有庫,然後將所有依賴的庫拷貝至output資料夾下。這個操作比較繁瑣,所以我們直接用指令碼一次性拷貝,在output資料夾下新建cplib.sh,將以下內容貼上至cplib.sh中:

#!/bin/sh  
 
exe="myApp"         #修改釋出程式的名稱
des="/home/output/" #修改輸出可執行檔案路徑
 
deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }')  
cp $deplist $des 

4.在終端執行chmod +x cplib.sh,然後執行 ./cplib.sh,此時所有依賴的庫均被拷貝至output資料夾下。

5.在output資料夾下新建myApp.sh檔案,注意這裡檔名一定是(可執行檔案名 + .sh),將以下內容拷貝至myApp.sh中:

#!/bin/sh  
appname=`basename $0 | sed s,\.sh$,,`  
      
dirname=`dirname $0`  
tmp="${dirname#?}"  
      
if [ "${dirname%$tmp}" != "/" ]; then  
dirname=$PWD/$dirname  
fi  
LD_LIBRARY_PATH=$dirname  
export LD_LIBRARY_PATH  
$dirname/$appname "
[email protected]
"

 6.執行chmod +x myApp.sh,軟體至此打包完成。注意:執行軟體的時候,執行的是 ./ myApp.sh, 而不是直接執行myApp。

 7.將輸出資料夾拷貝至目標平臺上會丟失執行許可權,可以執行chmod +x myApp和chmod +x myApp.sh,然後執行./myApp.sh即可執行軟體。