環境:qt5.14.2 ubuntu16.04
目錄結構
在ubuntu系統裡面編譯好檔案後,ldd 檢視程式相關的依賴庫
新建乙個lib資料夾
copy.sh內容如下,主要是將ldd找到的庫檔案複製到lib資料夾下
#! /bin/bash
#執行指令碼時在終端輸入 ./copy.sh ./test ./copy
#其中./test為ldd所要檢視的可執行程式的路徑,./copy為依賴檔案最終拷貝到的資料夾路徑
#以下三個引數為終端輸入
# $0 為 ./copy.sh
# $1 為 ./test
# $2 為 ./copy
# awk 後 $0,$1,$2為終端日誌的字串,以空格為分隔符,只在awk本行起作用
#將字串重定向到dependlist
dependlist=
$( ldd $1 |
awk '
}' )
#輸出 ./test
#echo $1
#拷貝依賴
cp$dependlist
$2#拷貝可執行程式
cp$1
$2
給copy.sh新增執行許可權
sudo
chmod +x copy.sh
./copy.sh qmltest ./lib/
新建qt.conf檔案
[paths]
prefix = ./
plugins = plugins
把qt 安裝目錄下的plugins中的platforms資料夾拷貝出來
解決方式:在發布程式目標系統目錄下執行遇到問題:qt.qpa.plugin: could not load the qt platform plugin 「xcb」 in 「」 even though it was found.export ld_library_path=』/home/xx/desktop/***/lib』:$ld_library_path
此問題是缺少相關的so庫,還是要到qt安裝環境下去找到相關的庫,複製過來;比較笨的方法是排除法,將qt中的 /home/***/qt5.14.2/5.14.2/gcc_64/lib 資料夾內所有內容都複製出來,再把不需要的so庫或者其他檔案刪除,保證
參考文章12
3
ubuntu 環境下的QT程式打包
1.qtcreate使用release版本編譯 將編譯後生成的可執行程式 如 test 複製到乙個空目錄下 2.使用ldd命令檢視和匯出需要的庫 在步驟1的目錄下新建乙個pack.sh檔案,檔案內容如下 cpp view plain copy bin sh exe test 你需要發布的程式名稱 d...
ubuntu 環境下的QT程式打包
1 qtcreator使用release版本編譯生成可執行程式 2 將可執行程式複製到 opt wdz qtdemo 目錄下 這個目錄也可以自己建 3 終端下使用ldd命令檢視需要的連線庫 ldd untitled23424242 4 ldd查詢到的所有需要的庫匯出 在這裡,我們可以自己寫乙個she...
linux下打包QT程式
把qt寫的程式整理好,生成release版本。利用下面的copylib.sh指令碼檔案,拷貝release版本的依賴庫。把 usr lib arm linux gnueabihf qt5 plugins platforms拷貝到release所在資料夾 建議單獨拿出來release版本的程式 找出p...