程序以test為例:
1. QtCreate使用Release版本編譯
2. 從可運行程序的文件中拿出可執行文件,例:test
3. 終端下使用ldd命令查看需要的連接庫,例:ldd test
4. 把ldd查詢到的所有需要的庫導出
這里提供一個腳本將ldd打印出來的依賴庫復制到指定路徑:
#!/bin/sh exe="test" #發布的程序名稱 des="/home/******/QtProject/build-test-Desktop-Release/ReleaseTest" #你的路徑 deplist=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }') cp $deplist $des
說明:exe :要發布的程序名稱 des:指定復制的路徑
5. 編寫.sh文檔 並將它放在與步驟4同一目錄下(.sh文件命名必須與可執行文件名字一樣例:可執行文件名 test, .sh 文件名為 test.sh)
.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 "$@"
6. 執行這個.sh文件:
可能因為不行執行需更改權限:
chmod +x test.sh
Ok!大功告成,將這個文件復制到其他電腦上就可以運行了。
注:
Linux 版本:Ubuntu 14.04 LTS
Qt:5.2.1
參考地址:http://doc.qt.io/qt-5/linux-deployment.html
轉自:https://blog.csdn.net/hjl_1991/article/details/50365927