Ubuntu 下qt程式的打包發布

2021-10-08 23:18:32 字數 1500 閱讀 7579

環境: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資料夾拷貝出來

解決方式:在發布程式目標系統目錄下執行

export ld_library_path=』/home/xx/desktop/***/lib』:$ld_library_path

遇到問題:qt.qpa.plugin: could not load the qt platform plugin 「xcb」 in 「」 even though it was found.

此問題是缺少相關的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...