Ubuntu下Qt軟體打包流程
阿新 • • 發佈:2019-01-03
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即可執行軟體。