最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

麒麟系統(tǒng)開發(fā)筆記(八):在國產(chǎn)麒麟系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

2022-10-24 09:23 作者:紅胖子_AAA紅模仿  | 我要投稿

前言

??在ubuntu上發(fā)布qt程序相對還好,使用腳本,但是在麒麟上發(fā)布的時候,因為銀河麒麟等不同版本,使用腳本就不太兼容,同時為了實現(xiàn)直接點擊應用可以啟動應用的效果,使用linuxdeployqt發(fā)布qt程序。

補充

??在ubuntu上發(fā)布程序遇到xcb問題,當我們將其部署到另外同樣環(huán)境但是未裝qt的環(huán)境下,運行起來一部分是xcb文件,有一部分解決后可以正常運行啟用,另一部分直接段錯誤,程序宕掉(提示,段核心錯誤,已轉(zhuǎn)存什么的),使用linuxdeployqt能解決此問題,也就是使用腳本打包的升級版本。

linuxdeployqt

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

源碼下載地址

??gitcode地址:https://gitcode.net/mirrors/probonopd/linuxdeployqt

linuxdeployqt編譯(麒麟系統(tǒng),ubuntu)

步驟一:下載解壓

??

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

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

gedit tools/linuxdeployqt/main.cpp

??


??(注意:這一步不做會導致打包輸出錯誤信息,具體看“入坑一”)

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

sudo apt-get install cmakesudo apt-get install patchelf

步驟四:使用cmake配置

cmake CMakeList.txt

??

??因為安裝了git與這個工程可能不對,我們直接使用源碼修改大法,直接定位到代碼給刪掉:
??


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

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

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

sudo apt-get install cmake-gui

??

cmake-gui

??選擇對應的路徑,然后使用默認unix makefile方式配置:
??


??錯誤如下:
??


??添加環(huán)境變量路徑:
??

繼續(xù)配置成功:
??

步驟六:生成generate

??

步驟七:編譯make

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

make

??

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

??沒有make install這個,手動移動到/usr/local/bin

sudo mv linuxdeployqt /usr/local/bin/

??

步驟九:測試是否編譯成功

??

linuxdeployqt打包流程

??新建一個工程
??


??然后找個空目錄:
??


??開始打包:
??


??錯誤“QDir::exists: Empty or null file name”,需要調(diào)整打包命令:
??


??錯誤“qmake not fount on the?PATH”,qmake要引入PATHqmake要引入PATH中:

export PATH=$PATH:/home/hdgx/Qt5.12.1/5.12.1/gcc_64/bin

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

#!/bin/shQT_DIR=/home/hdgx/Qt5.12.1/5.12.1/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ù)打包:
??


??發(fā)現(xiàn)已經(jīng)打包成功(ERROR:Could not parse verbose level忽略):
??


??

入坑

入坑一:運行報錯“ERROR:The host system is tool new.”

問題

??

原因

??源碼中做了判斷,不是源碼編譯問題,所以要修改源碼。

解決

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

gedit tools/linuxdeployqt/main.cpp

??


??然后重新make:
??


麒麟系統(tǒng)開發(fā)筆記(八):在國產(chǎn)麒麟系統(tǒng)上使用linuxdeployqt發(fā)布qt程序的評論 (共 條)

分享到微博請遵守國家法律
金华市| 九龙县| 宝鸡市| 阜阳市| 浮梁县| 阿拉善左旗| 宜阳县| 济阳县| 永济市| 平安县| 沐川县| 平潭县| 台南县| 荥经县| 遂川县| 涿州市| 开远市| 连江县| 咸宁市| 塘沽区| 封开县| 临安市| 岗巴县| 宁波市| 金溪县| 长武县| 玉环县| 天长市| 邛崃市| 林口县| 新津县| 集安市| 清丰县| 汉中市| 潞城市| 寿宁县| 隆安县| 肃北| 南靖县| 昭平县| 黄陵县|