很多的時候 需要將自己寫的QT 程序發布一下 所以今天教一下 怎么在ubuntu 環境下將自己的寫的Qt 程序打包打包是為了不依賴 開發環境 和開發的庫。
1. QtCreate使用Release版本編譯
2. 從可運行程序的文件中拿出可執行文件,例:untitled23424242
3. 終端下使用ldd命令查看需要的連接庫,例:ldd untitled23424242
4. 把ldd查詢到的所有需要的庫導出
這里提供一個腳本將ldd打印出來的依賴庫復制到指定路徑:
#!/bin/sh exe="untitled23424242" #發布的程序名稱 這是我的可執行程序的名字 des="/home/alvin/Desktop/untitled23424242/" #你的路徑 這是我的可執行文件的路徑 對應的相應的更改 deplist=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }') cp $deplist $des
說明:exe :要發布的程序名稱 des:指定復制的路徑
對應的相應的要更改
改完之后設置 腳本的權限
sudo chmod 777 dabao.sh
運行腳本
./dabao.sh
你會發現可執行文件依賴的 庫復制到 你指定的路徑里了
5. 編寫.sh文檔 並將它放在與步驟4同一目錄下(.sh文件命名必須與可執行文件名字一樣例:可執行文件名 untitled23424242, .sh 文件名為 untitled23424242.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 untitled23424242.sh