五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Qt實(shí)用技巧:在CentOS上使用linuxdeployqt打包發(fā)布qt程序

2023-03-20 11:52 作者:紅胖子_AAA紅模仿  | 我要投稿

前言

??之前在ubuntu上發(fā)布qt程序相對(duì)還好,使用腳本,在麒麟上發(fā)布的時(shí)候,使用腳本就不太兼容,同時(shí)為了實(shí)現(xiàn)直接點(diǎn)擊應(yīng)用可以啟動(dòng)應(yīng)用的效果,使用linuxdeployqt發(fā)布qt程序。
??本篇文章依然是繼續(xù)發(fā)布主題,有centOS的qt項(xiàng)目需要發(fā)布,系統(tǒng)是CentOS8.2,同時(shí)也做了CentOS7.5的發(fā)布(CentOS7.5整體差上不差,就是需要先yum卸載自帶的cmake,然后源碼安裝cmake3.4)

相關(guān)博客

??《Qt實(shí)用技巧:ubuntu發(fā)布程序打包流程(解決插件xcb加載失敗)?》:在ubuntu上發(fā)布程序遇到xcb問題,當(dāng)我們將其部署到另外同樣環(huán)境但是未裝qt的環(huán)境下,運(yùn)行起來一部分是xcb文件,有一部分解決后可以正常運(yùn)行啟用,另一部分直接段錯(cuò)誤,程序宕掉(提示,段核心錯(cuò)誤,已轉(zhuǎn)存什么的),使用linuxdeployqt能解決此問題,也就是使用腳本打包的升級(jí)版本。
??《麒麟系統(tǒng)開發(fā)筆記(八):在國產(chǎn)麒麟系統(tǒng)上使用linuxdeployqt發(fā)布qt程序》:這是在麒麟上使用linuxdeployqt打包的全流程。
??《Qt實(shí)用技巧:在CentOS上使用linuxdeployqt打包發(fā)布qt程序》:這是在CentOS界面服務(wù)器上linuxdeployq打包的流程。

linuxdeployqt

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

源碼下載地址

??gitcode下載:https://gitcode.net/mirrors/probonopd/linuxdeployqt

linuxdeployqt編譯(CentOS系統(tǒng))

步驟一:下載解壓

??

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

??找到main.cpp源碼,將這一段(在192行左右)注釋掉:
??

cd linuxdeployqt-master gedit tools/linuxdeployqt/main.cpp

??


??

步驟三:安裝三方依賴庫CMake

??centOS安裝軟件先切換至root:

su root

??


??CMake是自帶了(注意:本篇是centOS8.2,而在centOS7.5上,因?yàn)閏make自帶為cmake2.8,后續(xù)論證了,是需要卸載cmake2.8,源碼裝cmake3.20也編譯錯(cuò)誤,然后卸載又源碼安裝了cmake3.4,在centOS7.5上后續(xù)才順利make編譯linuxdeployqt
??

??使用到了cmake-gui

yum install cmake-gui.x86_64

??

??

步驟四:從源碼安裝patchelf工具(比其他系統(tǒng)多出來的)

??因?yàn)閥um沒有,也沒有找到安裝方法,只能從源碼編譯安裝了。
??

??下載地址;https://nixos.org/releases/patchelf/patchelf-0.9/patchelf-0.9.tar.gz

wget https://nixos.org/releases/patchelf/patchelf-0.9/patchelf-0.9.tar.gz

??解壓:

tar xvf patchelf-0.9.tar.gz

??

??進(jìn)入文件夾,配置configure:

cd patchelf-0.9 ./configure

??

??編譯make:
??

??安裝make install:
??


??測(cè)試:
??

步驟五:使用cmake配置

cmake CMakeList.txt

???

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

gedit CMakeLists.txt

??第7行至63行刪除:
??


??


??直接刪掉目錄下的緩存文件:CMakeCache.txt,然后繼續(xù):

rm CMakeCache.txt

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

??系統(tǒng)qt5:
??


??而我們使用了另外安裝的qt5,所以依賴需要引入我們自己安裝的qt5上。
??使用cmake-gui來指定依賴的qt:

cmake-gui

??選擇對(duì)應(yīng)的路徑,然后使用默認(rèn)unix makefile方式配置:
??


??點(diǎn)擊“Configure”,選擇“Unix Makefiles”方式:
??

這里默認(rèn)使用了系統(tǒng)的:
??

??雖然系統(tǒng)的和我們安裝的是一樣的還是為了不出錯(cuò)需要配置以下:
??

??再配置一次:
??

步驟七:生成generate

??

步驟八:編譯make

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

cd buildmake

??

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

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

cp linuxdeployqt /usr/local/bin/

??

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

??

linuxdeployqt打包流程

步驟一:準(zhǔn)備打包的應(yīng)用可執(zhí)行程序和空目錄

??新建一個(gè)工程
???

??然后找個(gè)空目錄:
??

??copy程序:
??

步驟二:引入環(huán)境變量

??qmake要引入$PATH中(注意:不指定則當(dāng)前使用的是系統(tǒng)的qmake):
??為了不影響系統(tǒng),使用腳本引入,每次打包使用之前使用source env.sh引入即可。

#!/bin/shQT_DIR=/home/yang/Qt/5.15.2/gcc_64export PATH=${QT_DIR}/bin:$PATHexport LIB_PATH=${QT_DIR}/lib:$LIB_PATHexport PLUGIN_PATH=${QT_DIR}/plugins:$PLUGIN_PATHexport QML2_PATH=${QT_DIR}/qml:$QML2_PATHexport LD_LIBRARY_PATH=${QT_DIR}/lib:$LD_LIBRARY_PATHecho $PATHecho $LIB_PATHecho $PLUGIN_PATHecho $QML2_PATHecho $LD_LIBRARY_PATH

??

步驟三:打包

??繼續(xù)打包:

// 打包命令(用這條還是非??赡苋睅?,如libxcb.icccm.so.4各種系統(tǒng)庫) // linuxdeployqt 可執(zhí)行程序 -verbose2(不要用這條了,之前ubuntu和麒麟都沒出現(xiàn)該問題,但是centOS8.2出現(xiàn)了卻庫的問題) // 完整打包命令(完全帶進(jìn)去了) linuxdeployqt 可執(zhí)行程序 -appimage

??


??發(fā)現(xiàn)已經(jīng)打包成功,直接點(diǎn)擊既可以運(yùn)行了:
??

步驟四:論證

??為了進(jìn)一步驗(yàn)證,我們弄一個(gè)全新的CentOS8.2做測(cè)試,裸鏡像:
??

??之前的app3打包拷貝進(jìn)去:
??

入坑

入坑一:coro dump缺少libxcb-icccm.so.4庫

問題

??為了進(jìn)一步驗(yàn)證,我們弄一個(gè)全新的CentOS8.2做測(cè)試,裸鏡像:
??


??之前的app打包拷貝進(jìn)去:
??

??跑不起來:
??

???

原理

??毫無疑問,應(yīng)該xcb依賴的一些庫沒有導(dǎo)入進(jìn)來:

export QT_DEBUG_PLUGINS=1

??

解決

??使用linuxdeployqt的時(shí)候,使用-appimage

??


Qt實(shí)用技巧:在CentOS上使用linuxdeployqt打包發(fā)布qt程序的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
繁昌县| 富源县| 大余县| 鸡泽县| 聂拉木县| 枣庄市| 福鼎市| 龙陵县| 遵化市| 沂南县| 禹城市| 平乐县| 波密县| 英超| 搜索| 额尔古纳市| 光山县| 佛冈县| 稻城县| 宣威市| 兴隆县| 通州区| 泽州县| 深州市| 乌拉特中旗| 周口市| 同仁县| 新营市| 徐汇区| 剑河县| 望城县| 东山县| 墨竹工卡县| 内江市| 沂水县| 高密市| 保山市| 会理县| 贵溪市| 博白县| 安庆市|