国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

這篇具有很好參考價(jià)值的文章主要介紹了統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

若該文為原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明原文出處
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/131411975文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-502428.html

紅胖子(紅模仿)的博文大全:開發(fā)技術(shù)集合(包含Qt實(shí)用技術(shù)、樹莓派、三維、OpenCV、OpenGL、ffmpeg、OSG、單片機(jī)、軟硬結(jié)合等等)持續(xù)更新中…(點(diǎn)擊傳送門)

國(guó)產(chǎn)麒麟系統(tǒng)、統(tǒng)信UOS系統(tǒng)相關(guān)開發(fā)

上一篇:《統(tǒng)信UOS系統(tǒng)開發(fā)筆記(六):提取在線安裝軟件后,提取其安裝包,部署目標(biāo)機(jī)使用離線軟件包方式安裝軟件》
下一篇:《統(tǒng)信UOS系統(tǒng)開發(fā)筆記(八):在統(tǒng)信UOS上編譯搭建mqtt基礎(chǔ)環(huán)境(版本使用QMQTT::Clinet)》


前言

??在ubuntu上發(fā)布qt程序相對(duì)還好,使用腳本,但是在統(tǒng)信UOS麒麟上發(fā)布的時(shí)候,因?yàn)殂y河麒麟等不同版本,使用腳本就不太兼容,同時(shí)為了實(shí)現(xiàn)直接點(diǎn)擊應(yīng)用可以啟動(dòng)應(yīng)用的效果,使用linuxdeployqt發(fā)布qt程序。


注意

??本篇文章,最終手動(dòng)結(jié)合幾個(gè)方式成功,花費(fèi)不少時(shí)間研究,推斷是終端直接ldd之后強(qiáng)制進(jìn)入了一個(gè)另外的環(huán)境變量,導(dǎo)致無(wú)法連接成功,也就是,第一層是成功的,第一層的庫(kù)又調(diào)用ldd依賴的這一步的環(huán)境變量被強(qiáng)了。
??但是最后通過(guò)手動(dòng)來(lái)實(shí)現(xiàn)linuxdeplopyqt和編譯配置來(lái)實(shí)現(xiàn)打包部署了。


相關(guān)博客

??《Qt實(shí)用技巧:ubuntu發(fā)布程序打包流程(解決插件xcb加載失敗) 》
??《關(guān)于 QWidget+Qml程序打包到ubuntu時(shí),程序與系統(tǒng)庫(kù)版本不同,編譯時(shí)添加并依賴自帶庫(kù) 的方法》
??《Qt實(shí)用技巧:在CentOS上使用linuxdeployqt打包發(fā)布qt程序》
??《麒麟系統(tǒng)開發(fā)筆記(八):在國(guó)產(chǎn)麒麟系統(tǒng)上使用linuxdeployqt發(fā)布qt程序》


統(tǒng)信UOS系統(tǒng)版本

??系統(tǒng)版本:
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序


linuxdeployqt

??Linux部署工具linuxdeployqt將應(yīng)用程序作為輸入,并通過(guò)將應(yīng)用程序使用的資源(如庫(kù)、圖形和插件)復(fù)制到一個(gè)包中使其自包含。結(jié)果包可以作為AppDir或AppImage分發(fā)給用戶,也可以放入交叉分發(fā)包中。它可以作為構(gòu)建過(guò)程的一部分,在CMake、qmake和make等系統(tǒng)中部署用C、C++和其他編譯語(yǔ)言編寫的應(yīng)用程序。當(dāng)用于基于Qt的應(yīng)用程序時(shí),它可以綁定運(yùn)行應(yīng)用程序所需的Qt的特定最小子集。

源碼下載地址

??csdn粉絲0積分下載地址:https://download.csdn.net/download/qq21497936/86803960
??gitcode地址:https://gitcode.net/mirrors/probonopd/linuxdeployqt


linuxdeployqt編譯(統(tǒng)信UOS系統(tǒng))

步驟一:下載解壓

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

步驟二:修改源碼,去掉gcc版本檢查

??找到main.cpp源碼,將這一段(在192行左右)注釋掉(這里通過(guò)看源碼,實(shí)際上是可以通過(guò)配置去控制的(研究源碼發(fā)現(xiàn)的,但是我們不再動(dòng)作了,只是貼出來(lái)):
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??還是老方法繼續(xù)修改:

vi linuxdeployqt-master/tools/linuxdeployqt/main.cpp

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

步驟三:使用cmake配置

cd linuxdeployqt-master
cmake CMakeLists.txt

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??因?yàn)榘惭b了git與這個(gè)工程可能不對(duì),我們直接使用源碼修改大法,直接定位到代碼給刪掉:

vi CMakeList.txt

??直接刪掉目錄下的緩存文件:CMakeCache.txt,然后繼續(xù):
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??繼續(xù)cmake CMakeList.txt

步驟四:配置Qt的依賴環(huán)境

??麒麟系統(tǒng)本身自帶了qt5庫(kù)(未帶開發(fā)相關(guān)的庫(kù)),而我們使用了另外安裝的qt5,所以依賴需要引入我們自己安裝的qt5上。
??為了方便配置,也不影響系統(tǒng)我們裝上cmake的gui版本:

sudo yum install cmake-gui

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

cmake-gui 

??選擇對(duì)應(yīng)的路徑,然后使用默認(rèn)unix makefile方式配置:
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

步驟五:生成generate

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

步驟六:編譯make

??切入build目錄,并且使用make命令即可:

make

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??測(cè)試程序:
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

步驟七:安裝到系統(tǒng)目錄

??沒有make install這個(gè),手動(dòng)移動(dòng)到/usr/local/bin

sudo cp tools/linuxdeployqt/linuxdeployqt /usr/local/bin/

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

步驟八:測(cè)試是否編譯成功

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序


linuxdeployqt打包流程(arm看可以,本次pc版本失?。?/h2>

??(PS:虛擬機(jī)打包好之后,退回到裸機(jī)版本,再測(cè)試)
??新建一個(gè)工程
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??然后,找個(gè)空目錄:
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??未打包在開發(fā)機(jī)上也可以運(yùn)行(裸機(jī)不行):
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??這里要將Qt引入環(huán)境,為了不影響系統(tǒng),使用source腳本引入,每次使用之前使用source env.sh引入即可。

touch env.sh

??然后輸入如下(QT_DIR為安裝Qt的路徑):

#!/bin/sh
QT_DIR=/home/yang/Qt5.12.8/5.12.8/gcc_64

export PATH=${QT_DIR}/bin:$PATH
export LIB_PATH=${QT_DIR}/lib:$LIB_PATH
export PLUGIN_PATH=${QT_DIR}/plugins:$PLUGIN_PATH
export QML2_PATH=${QT_DIR}/qml:$QML2_PATH
export LD_LIBRARY_PATH=${QT_DIR}/lib:$LD_LIBRARY_PATH

echo $PATH
echo $LIB_PATH
echo $PLUGIN_PATH
echo $QML2_PATH
echo $LD_LIBRARY_PATH

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??引入環(huán)境:
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??下次打包遵循此流程即可,繼續(xù)打包:
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??(PS:這里是沒有使用sudo進(jìn)行的打包的,可能對(duì)權(quán)限管控比較嚴(yán)格,查看“入坑二”)
??下面使用sudo打包:

sudo linuxdeployqt testDemo -verbose2

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??上面是Qt5Widget的庫(kù)連接到系統(tǒng)庫(kù)上去了,版本不一樣找不到api
??下面是未打包的testDemo在開發(fā)機(jī)上:
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??下面是未打包的testDemo在裸機(jī)上:
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序


手動(dòng)來(lái)實(shí)現(xiàn)linuxdeployqt打包

步驟一:應(yīng)用放過(guò)去

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??(這是開發(fā)機(jī),直接運(yùn)行也是可以的)
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

步驟二:創(chuàng)建qt.conf

??這個(gè)文件最重要,他就是調(diào)用testDemo應(yīng)用時(shí)候,先加載然后去搜索庫(kù)路徑的配置,沒有他則走向系統(tǒng)環(huán)境變量了。

touch qt.conf
vi qt.conf

??內(nèi)容,是我們從另外國(guó)產(chǎn)麒麟打包的該文件復(fù)制的,如下:
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

# Generated by linuxdeployqt
# https://github.com/probonopd/linuxdeployqt/
[Paths]
Prefix = ./
Plugins = plugins
Imports = qml
Qml2Imports = qml

??這個(gè)時(shí)候,我們?cè)龠\(yùn)行一次:
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??路徑從本地開始找了。

步驟三:實(shí)現(xiàn)其他三個(gè)文件夾依賴的拷貝

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

ls -l
cp /home/yang/Qt5.12.8/5.12.8/gcc_64/translations/ . -rf
cp /home/yang/Qt5.12.8/5.12.8/gcc_64/plugins/ . -rf
cp /home/yang/Qt5.12.8/5.12.8/gcc_64/lib/ . -rf
ls -lh

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??測(cè)試本機(jī)可運(yùn)行了:
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??(PS:這里是全部copy了庫(kù),沒有進(jìn)行依賴裁剪的,暫時(shí)不管了,花費(fèi)時(shí)間遠(yuǎn)超預(yù)期了)

步驟四:打包放到裸機(jī)上

??因?yàn)闆]有裁剪,所以包比較大:

cd ..
tar cvf outManual.tar outManual
ls -l outManual.tar

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??拷貝到裸機(jī)上去。
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

步驟五:裸機(jī)上測(cè)試運(yùn)行(失?。?/h3>

??還是失敗,如下:
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??這還是之前一樣,libQt5Widget.so.5依賴libQt5Core.so.5,前面是用當(dāng)前配置的,然后庫(kù)的依賴庫(kù)就強(qiáng)制引入到了/usr/lib64,跟之前l(fā)inuxdeployqt打包一樣的問題。
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??然后有個(gè)念頭,于是嘗試加上LD_LIBRARY_PATH測(cè)試,可以運(yùn)行成功,具體查看“入坑四”。

步驟六:編譯時(shí)引入運(yùn)行時(shí)路徑pro配置QMAKE_RPATHDIR

??為了不在運(yùn)行時(shí)額外添加環(huán)境變量,為了打包不出現(xiàn)xcb問題,還得修改一下.pro文件如下圖:

# 這里是添加運(yùn)行應(yīng)用的時(shí)候的運(yùn)行包,此處避免額外設(shè)置LD_LIBRARY_PATH
QMAKE_RPATHDIR = ./lib

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??編譯出來(lái),單獨(dú)將testDemo2放置到原來(lái)的部署裸機(jī)上:
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序
??最終,直接點(diǎn)擊可以運(yùn)行成功。


入坑

入坑一:編譯linuxdeployqt的依賴Qt路徑問題

問題

??開始編譯的時(shí)候,讓其依賴了系統(tǒng),直接導(dǎo)致就算引入了其他qt的環(huán)境變量,打包也是依賴系統(tǒng),直接不打包
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

原因

??懷疑是跟編譯linuxdeployqt的依賴有關(guān),所以重做一遍自己安裝Qt的cmake。

解決

??重做一遍自己安裝Qt的cmake后編譯,也還是一樣的。
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

入坑二:linuxdeployqt不復(fù)制的問題

問題

??如前面的入坑,就是不復(fù)制,與編譯依賴沒關(guān)系。

嘗試

??沒有辦法,直接干linuxdeployqt的main.cpp的源碼:
??1.先調(diào)試哪里沒有打印,每次修改源碼重新編譯之后,部署再打包看輸出結(jié)果。??(PS:發(fā)現(xiàn)qDebug()不輸出,輸出的是qInfo())
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??將所有LogError換為qInfo(),如下圖:
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??還是不行:
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??繼續(xù):
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??棘手的問題:
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??至此可以確認(rèn)是兼容性問題,這個(gè)問題比較棘手,短期內(nèi)調(diào)不好了。

解決

??Linuxdeployqt方式暫未解決,可以換個(gè)linuxdeployqt的版本,也許不同的uos版本也不會(huì)又這個(gè)問題了,很奇怪連LogError和qDebug都不出來(lái)。
??后續(xù),第二天突然想到是否需要sodu權(quán)限,嘗試了下,確實(shí)是的:
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??所以又重做,使用sudo來(lái)打包了。

入坑三:依賴鏈接庫(kù)存在錯(cuò)誤

問題

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??這是和系統(tǒng)的沖突了。
??編譯的時(shí)候也是使用的安裝包的:
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

原因

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??無(wú)解,qmake路徑和環(huán)境變相也都沒有問題
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??檢查linuxdeployqt
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

嘗試1

??拍快照,然后目錄下的所有/usr/lib64/Qt5*刪除,首先檢查系統(tǒng)是否正常啟用,再打包嘗試。

sudo rm /usr/lib64/libQt5*

??重啟,確實(shí),系統(tǒng)起不來(lái)了,系統(tǒng)依賴Qt5.11下的庫(kù)。
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??所以不能刪除,此路不通。

嘗試2

??拍快照,然后將安裝的Qt5庫(kù)copy過(guò)去,首先檢查系統(tǒng)是否正常啟用,再打包嘗試。
??執(zhí)行copy指令,直接立即黑屏,此路不同。
??所以,/usr/lib64下的庫(kù)是不能動(dòng)的。
??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??這里懷疑,從進(jìn)入終端開始就進(jìn)入了固定的優(yōu)先環(huán)境變量,只是推測(cè),目前l(fā)inuxdeployqt又花費(fèi)半天,暫時(shí)仍然無(wú)解。

解決方法(有點(diǎn)偏門,失?。?/h4>

??找不到一個(gè)庫(kù)就刪掉一個(gè)庫(kù),此時(shí)系統(tǒng)是已經(jīng)將庫(kù)加載進(jìn)內(nèi)存運(yùn)行,是不影響正在運(yùn)行的系統(tǒng),但是無(wú)法重啟,如下:

sudo linuxdeployqt testDemo -verbose2
sudo rm /usr/lib64/libQt5Gui.so*

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

sudo linuxdeployqt testDemo -verbose2
sudo rm /usr/lib64/libQt5Core.so*

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

sudo linuxdeployqt testDemo -verbose2
sudo cp /home/yang/Qt5.12.8/5.12.8/gcc_64/lib/libicuuc.so* /usr/lib64/

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

sudo linuxdeployqt testDemo -verbose2
sudo cp /home/yang/Qt5.12.8/5.12.8/gcc_64/lib/libicudata.so* /usr/lib64/

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

sudo linuxdeployqt testDemo -verbose2
sudo yum install patchelf
sudo linuxdeployqt testDemo -verbose2

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

??可以,uos你贏了,我放棄了?。。?/p>

入坑四:手動(dòng)qt.conf模仿部署還是強(qiáng)制路徑切換

問題

??統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

原因

??分析該系統(tǒng)第二次搜索庫(kù),總是會(huì)引入到/usr/lib64,這個(gè)問題很操蛋,從一開始linuxdeployqt打包不行就是這個(gè)根本原因。

解決

??直接在編譯的時(shí)候,最優(yōu)先的方式,讓應(yīng)用去運(yùn)行時(shí)先依賴相對(duì)路徑,而不是去依靠運(yùn)行時(shí)的環(huán)境變量和配置文件了。
??pro加入配置文件:

# 這里是添加運(yùn)行應(yīng)用的時(shí)候的運(yùn)行包,此處避免額外設(shè)置LD_LIBRARY_PATH
QMAKE_RPATHDIR = ./lib

??點(diǎn)擊應(yīng)用運(yùn)氣的時(shí)候,應(yīng)用自身會(huì)先依賴./lib下的庫(kù)查找。


上一篇:《統(tǒng)信UOS系統(tǒng)開發(fā)筆記(六):提取在線安裝軟件后,提取其安裝包,部署目標(biāo)機(jī)使用離線軟件包方式安裝軟件》
下一篇:《統(tǒng)信UOS系統(tǒng)開發(fā)筆記(八):在統(tǒng)信UOS上編譯搭建mqtt基礎(chǔ)環(huán)境(版本使用QMQTT::Clinet)》


若該文為原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明原文出處
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/131411975

到了這里,關(guān)于統(tǒng)信UOS系統(tǒng)開發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 統(tǒng)信UOS操作系統(tǒng)安裝

    統(tǒng)信UOS操作系統(tǒng)安裝

    常見的linux國(guó)產(chǎn)修改版本,有深度的linux(Deepin)、紅旗Linux、銀河麒麟、中標(biāo)麒麟Linux、統(tǒng)信UOS。大家可能聽說(shuō)過(guò)深度linux,在眾多國(guó)產(chǎn)linux修改版本中,深度的體驗(yàn)可以說(shuō)算得上不錯(cuò)的。而統(tǒng)信UOS開發(fā)和維護(hù)是深度團(tuán)隊(duì),只不過(guò)Deepin是社區(qū)版系統(tǒng),而統(tǒng)信UOS是商業(yè)版系統(tǒng)。今天

    2024年02月07日
    瀏覽(21)
  • 統(tǒng)信UOS + Windows雙系統(tǒng)安裝教程

    統(tǒng)信UOS + Windows雙系統(tǒng)安裝教程

    全文導(dǎo)讀:本文主要介紹了AMD架構(gòu)下(Intel/amd/兆芯/海光)的機(jī)器同時(shí)安裝Windows系統(tǒng)+UOS系統(tǒng)的方法。 1、下載好UOS系統(tǒng)鏡像(AMD64),下載地址:https://www.chinauos.com/resource/download-professional 2、下載好windows系統(tǒng)鏡像,由于版權(quán)原因請(qǐng)自行百度查找下載地址進(jìn)行下載; 3、制作U盤

    2024年02月04日
    瀏覽(19)
  • 統(tǒng)信 UOS 系統(tǒng)如何安裝及升級(jí) python

    ????????最近因工作需要,臺(tái)式機(jī)及筆記本均換為國(guó)產(chǎn)機(jī),分別為聯(lián)想開天 M630Z (uniontechos-desktop-20-professional-1043-amd64)及華為擎云 L410 (uniontechos-desktop-20-professional-1040-arm64),均為國(guó)產(chǎn)操作系統(tǒng)統(tǒng)信 UOS。 ????????問題來(lái)了,因?yàn)椴┲饕恢绷?xí)慣于 Windows 操作系統(tǒng),面對(duì)

    2023年04月08日
    瀏覽(19)
  • uos統(tǒng)信系統(tǒng)配置本地源APT

    目錄 1,將光盤掛載到/mnt下面? ?2,配置本地源(apt) 3,更新源 4,測(cè)試 ? ? ? ? ? ????????(1),vi /etc/apt/sources.list 進(jìn)入 編輯? ? ????????(2),在里面添加??deb [trusted=yes] file:///mnt fou main

    2024年02月09日
    瀏覽(27)
  • 統(tǒng)信UOS服務(wù)器系統(tǒng)-如何查看版本信息

    統(tǒng)信UOS服務(wù)器系統(tǒng)-如何查看版本信息

    在統(tǒng)信服務(wù)器操作系統(tǒng)V20官網(wǎng)鏡像下載列表里面看,有A版(兼容OpenAnolis社區(qū)技術(shù)路線)和E版(兼容openEuler社區(qū)技術(shù)路線)鏡像的區(qū)別,但從版本發(fā)行標(biāo)記里面看,從1050之后,都是同時(shí)發(fā)布,應(yīng)該是版本進(jìn)行了融合,實(shí)現(xiàn)了發(fā)版節(jié)奏一致,使用習(xí)慣和兼容性基本一致,特殊應(yīng)

    2024年04月11日
    瀏覽(16)
  • 統(tǒng)信UOS操作系統(tǒng)上禁用IPv6

    統(tǒng)信UOS操作系統(tǒng)上禁用IPv6

    原文鏈接:統(tǒng)信UOS操作系統(tǒng)上禁用IPv6 hello,大家好??!繼之前我們討論了如何在麒麟KYLINOS上禁用IPv6之后,今天我要給大家?guī)?lái)的是在統(tǒng)信UOS操作系統(tǒng)上禁用IPv6的方法。IPv6是最新的網(wǎng)絡(luò)通信協(xié)議,但在某些特定的網(wǎng)絡(luò)環(huán)境或測(cè)試場(chǎng)景中,可能需要禁用IPv6以確保兼容性或滿足

    2024年01月17日
    瀏覽(44)
  • 統(tǒng)信UOS桌面操作系統(tǒng)教育版的安裝方法

    統(tǒng)信UOS桌面操作系統(tǒng)教育版的安裝方法

    原文鏈接:統(tǒng)信UOS桌面操作系統(tǒng)教育版的安裝方法 hello,大家好!繼我們之前詳細(xì)介紹了統(tǒng)信UOS桌面操作系統(tǒng)的專業(yè)版、服務(wù)器版以及家庭版安裝方法之后,今天我將帶大家了解如何安裝統(tǒng)信UOS的教育版,使用的是最新的1060鏡像。 統(tǒng)信UOS教育版是專為教育環(huán)境設(shè)計(jì)的操作系

    2024年01月20日
    瀏覽(50)
  • 使用U盤安裝統(tǒng)信UOS20服務(wù)器操作系統(tǒng)1050a出現(xiàn)“設(shè)置基礎(chǔ)軟件倉(cāng)庫(kù)時(shí)出錯(cuò)”報(bào)錯(cuò)導(dǎo)致無(wú)法繼續(xù)安裝的解決方法

    使用U盤安裝統(tǒng)信UOS20服務(wù)器操作系統(tǒng)1050a出現(xiàn)“設(shè)置基礎(chǔ)軟件倉(cāng)庫(kù)時(shí)出錯(cuò)”報(bào)錯(cuò)導(dǎo)致無(wú)法繼續(xù)安裝的解決方法

    目錄 一、復(fù)現(xiàn)步驟 ?二、解決方法 操作系統(tǒng)版本:統(tǒng)信操作系統(tǒng)UOS--20-1050a-amd64 使用Rufus工具制作U盤啟動(dòng)盤或者使用UltraISO工具制作U盤啟動(dòng)盤; 修改啟動(dòng)項(xiàng),選擇從U盤啟動(dòng); 這里看機(jī)器是什么品牌或者組裝機(jī),有如聯(lián)想F12、華碩F2等 進(jìn)入系統(tǒng)安裝界面,這里可以看到在“軟

    2024年02月15日
    瀏覽(280)
  • 統(tǒng)信服務(wù)器操作系統(tǒng)UOS V20 各個(gè)版本說(shuō)明

    統(tǒng)信的操作系統(tǒng) A結(jié)尾的是基于龍蜥 OpenAnolis? D結(jié)尾的是基于 debian 10? E結(jié)尾的是基于歐拉 OpenEuler? 安裝后可以通過(guò)/etc下的文件來(lái)分辨 A版安裝好以后可以 cat /etc/redhat-release D版安裝好以后可以 cat /etc/debian_version E版安裝好以后可以? cat /etc/UnionTech-release 如何選擇 如果你習(xí)慣

    2024年02月09日
    瀏覽(20)
  • 全網(wǎng)最細(xì)(UOS)統(tǒng)信系統(tǒng)上安裝Java環(huán)境和IDEA

    全網(wǎng)最細(xì)(UOS)統(tǒng)信系統(tǒng)上安裝Java環(huán)境和IDEA

    通過(guò)命令:uname -m 查看? 他可能會(huì)返回? X86_64 或者 aarch64 我目前的系統(tǒng)返回的是aarch64的,所有以下下載的都是aarch64相關(guān)的包。 一定要先看自己的系統(tǒng)架構(gòu)是什么?。?!一定要先看自己的系統(tǒng)架構(gòu)是什么?。?!一定要先看自己的系統(tǒng)架構(gòu)是什么!??!不要急著去安裝?。?!

    2024年02月11日
    瀏覽(90)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包