Linux下Qt 5 6 1 1 程式的發布

2021-07-22 16:24:05 字數 1380 閱讀 3718

2、本文目標執行環境:

linux版本: 64位的centos_7(核心版本3.10.0,全新安裝,未新安裝任何補丁和程式)

3、本文作者explorer_zch,本文發布時間2016.09.12

二、總體思路:

編譯程式 ——> 拷貝共享庫(解決依賴)——> 拷貝平台檔案 ——> 發布軟體

三、詳細步驟:

1、 使用qt,將寫好的**,編譯成release版(注意是:release版)

2、 拷貝編譯得到的 可執行檔案 到乙個新建資料夾下(注意 資料夾的名稱 和 可執行檔案的名稱 最好保持一致,這樣可以使後續操作更方便)

3、 查詢軟體執行需要的共享庫

ldd ./可執行檔名稱

4、 拷貝共享庫到可執行檔案所在目錄下

使用 ldd 命令後可以查詢到需要非常多的庫,乙個乙個的人工複製怎麼會是程式猿的作風。編寫如下指令碼:

#!/bin/sh  

exe="shuangseqiu"

des="/home/explorer/桌面/shuangseqiu"

deplist=$(ldd $exe | awk ' }')

cp $deplist

$des

export path=$path:"."

export ld_library_path=$ld_library_path:"."

(ubuntu上應該這樣寫:

export path=".":$path

export ld_library_path=".":$ld_library_path

儲存後,命令列執行:source ~/.bashrc (使環境配置檔案過載生效)

9、 執行軟體

雙擊可執行檔案,或者命令列執行

四、 其它情況

經過以上步驟,仍然可能無法在目標機器上執行發布的軟體,現提供一種解決辦法。

a) 在目標機器上,在發布的軟體路徑下開啟終端,執行

export qt_debug_plugins=1;

b) 然後再次在終端執行可執行檔案,此時可以將除錯資訊列印出來,可以看到軟體還需要的庫;

c) 拷貝查詢得到的庫檔案到目標主機;

d) 再次執行軟體。

本文的第三段中第5小段就是如此得到的,查詢出來的需要的乙個庫是libqt5xcbqpa.so.5,但本人把libqt5xcbqpa.so.5這個庫從編譯機拷貝到目標機上,目標機仍然無法正確執行發布的軟體,故我把4個libqt5xcbqpa.so*的檔案全部拷貝過去,終不再提示缺少libqt5xcbqpa.so.5。

linux下打包QT程式

把qt寫的程式整理好,生成release版本。利用下面的copylib.sh指令碼檔案,拷貝release版本的依賴庫。把 usr lib arm linux gnueabihf qt5 plugins platforms拷貝到release所在資料夾 建議單獨拿出來release版本的程式 找出p...

linux下QT程式部署

例如開發的程式名稱為hs run。場景為提供共享資料夾 myshare 的windows宿主機,開發用的linux虛擬機器dev,發布用的linux虛擬機器pub。過程為 1.將虛擬機器dev開發的程式和依賴庫複製到共享資料夾下。2.將共享資料夾下的程式和依賴庫複製到虛擬機器pub下。在虛擬機器de...

Linux下QT程式打包

3 步驟 linuxdeployqt 參考qtcreate使用release版本編譯 從可執行程式的檔案中拿出可執行檔案,例 umarm 例 ldd umarm bin sh exe umarm 你需要發布的程式名稱 des home junion desktop bin 建立資料夾的位置 depl...