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

linux平臺(tái)下qt程序的編譯以及使用linuxdeployqt打包可執(zhí)行程序和在高版本22.04ubuntu下使用linuxdeployqt打包文件的問(wèn)題

這篇具有很好參考價(jià)值的文章主要介紹了linux平臺(tái)下qt程序的編譯以及使用linuxdeployqt打包可執(zhí)行程序和在高版本22.04ubuntu下使用linuxdeployqt打包文件的問(wèn)題。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

寫于2023.10.20

最近遇到了一個(gè)問(wèn)題,需要把在windows下面寫好的qt程序打包成linux可以運(yùn)行的文件進(jìn)行發(fā)布,而且最終目標(biāo)和windows一樣,要在一個(gè)近乎于純凈環(huán)境的機(jī)器上進(jìn)行運(yùn)行,故而有了這個(gè)博客,記錄了我們小組攻克的一系列問(wèn)題

由于是已經(jīng)攻克過(guò)后才有的這一篇博客,所以可能有些細(xì)節(jié)我已經(jīng)想不起來(lái)了,但大體過(guò)程已經(jīng)寫在了下面

首先說(shuō)一下我們的環(huán)境,用的是ubuntu 22.04.3LTS,下面附上官網(wǎng)的連接

https://cn.ubuntu.com/download/desktop

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

之后給ubuntu配置源,這里我配置的是科大的源

首先打開(kāi)中國(guó)科學(xué)技術(shù)大學(xué)鏡像網(wǎng)站

USTC Open Source Software Mirror

點(diǎn)擊網(wǎng)頁(yè)右

側(cè)“配置軟件源”按鍵。如下圖所示,在彈出的界面中,發(fā)行版鏡像選擇“Ubuntu

源使用幫助”。

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

進(jìn)入 Ubuntu 源使用幫助后,如下圖所示,在手動(dòng)更改配置文件部分復(fù)制選

框中的源配置信息。

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

注意不同的 Ubuntu 版本需要對(duì)應(yīng)不同的源,Ubuntu 版本有對(duì)應(yīng)代號(hào),替換

源中代號(hào)即可跟換版本。

復(fù)制號(hào)源配置信息后,使用 CTRL+ALT+T 快捷鍵打開(kāi) Terminal,輸入如下圖所

示命令, 備份源配置文件,并使用 gedit 軟件打開(kāi)該文件,然后將復(fù)制的信息覆

蓋源信息并保存

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

使用科大源配置信息覆蓋/etc/apt/sources.list 文件信息后,保存文件內(nèi)容,然

后再終端中輸入 sudo apt-get update 命令并執(zhí)行,系統(tǒng)會(huì)自動(dòng)更新索引信息,使

配置生效。運(yùn)行 sudo apt-get upgrade 命令,可以對(duì)系統(tǒng)安裝軟件進(jìn)行更新

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

上面的圖片都是我使用的教程截下來(lái)的,因?yàn)槲乙呀?jīng)解決這個(gè)問(wèn)題了,請(qǐng)?jiān)彂卸璧奈也辉儆靡粋€(gè)新機(jī)給大家演示(其實(shí)這個(gè)帖子我也鴿了好幾天)

之后安裝vim,gcc

在終端輸入并運(yùn)行 sudo apt-get install vim 指令,系統(tǒng)即可自動(dòng)安裝 vim 編輯

器。vim 軟件安裝過(guò)程如下圖所示:

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

同 vim 編輯器安裝類似,早終端輸入并運(yùn)行 sudo apt-get install gcc,系統(tǒng)即

可自動(dòng)完成 gcc 編譯器的安裝。

至此完成部分準(zhǔn)備工作,之后我們開(kāi)始安裝qt

Qt6的話,請(qǐng)到下面這個(gè)網(wǎng)址下載在線安裝器

Index of /qt/official_releases/online_installers/ | 清華大學(xué)開(kāi)源軟件鏡像站 | Tsinghua Open Source Mirror

安裝完了之后進(jìn)入這個(gè)下載出來(lái)的文件的文件夾,右鍵,在終端打開(kāi),然后輸入代碼,首先賦予可執(zhí)行權(quán)限,也可以直接右鍵然后在屬性里勾選

sudo 777 chmod qt-xxxxxx.run

./ qt-xxxxxx.run

這個(gè)chmod后面是你下載下來(lái)的文件名,不需要我多說(shuō)吧,不能理解我也沒(méi)辦法

然后運(yùn)行,之后創(chuàng)建文件,我這里下的是qt6.4.2,

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

Additional libraries里面的組件盡量勾選,但webengine一定不能少,如果你沒(méi)選也可以在qt的目錄下面找到這個(gè)文件雙擊,補(bǔ)全一下

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

之后打開(kāi)你的程序,記得一定要用qmake,打開(kāi).pro,然后在里面添加這么一行

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

QMAKE_LFAGS += -no-pie

添加進(jìn)你的.pro文件里面

之后進(jìn)行release的構(gòu)建,這里需要注意的是如果你的windows程序源碼用到了Qactive里面的東西,例如axcontainer,那么會(huì)報(bào)錯(cuò),這個(gè)模塊是只有windows才會(huì)有的,所以只能夠把相關(guān)代碼屏蔽或者刪除,這一點(diǎn)我無(wú)能為力

之后配置qt環(huán)境,在命令行輸入這一句

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

之后打開(kāi)了文件,可以看到是這樣的

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

Qt的配置是這幾行

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

Qt的配置大家根據(jù)自身的路徑來(lái)修改就好,我的用戶名是pacific,大家要改成自己的用戶名才行

之后也加上這一行,后面有用

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

之后在控制臺(tái)輸入

source ~/.bashrc

讓環(huán)境立即生效

到這里我們就把qt的問(wèn)題解決了,之后我們開(kāi)始正式進(jìn)入打包環(huán)節(jié),打包呢,需要很多很多東西的加持,其中遇到的坑我也會(huì)給大家一一說(shuō)明,首先大家知道windows下面有一個(gè)命令叫做windeployqt,但很遺憾,linux下面沒(méi)有這個(gè)命令,但所幸github上面有工具,所以我們來(lái)下載一下

下面附上github網(wǎng)址

https://github.com/probonopd/linuxdeployqt/releases

打開(kāi)過(guò)后大家可以看到是這樣的

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

這里我們要看自己的ubuntu版本,如果你用的是18.04還是16.04以下的話,可以直接下載工具,就是這個(gè)

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

而如果你和我一樣是比較新的ubuntu,我們需要下載源碼,大家看到這里不要急,覺(jué)得麻煩,很多博客天天說(shuō)的很簡(jiǎn)單,但其中很多問(wèn)題他們都沒(méi)有提到過(guò),例如這個(gè)打包過(guò)程中會(huì)報(bào)錯(cuò)什么的,我是一步一步走下來(lái)的,所以自然知道該怎么做,而不是沒(méi)頭沒(méi)尾的抄襲,網(wǎng)上的博客說(shuō)自己是20.04的ubuntu,居然沒(méi)報(bào)錯(cuò),這顯然是不可能的

至于為什么要下載源碼是因?yàn)樽詭У墓ぞ咴诟甙姹緐buntu會(huì)報(bào)錯(cuò)顯示the host system is too new,我想從網(wǎng)上找個(gè)截圖但沒(méi)找到,我自己的已經(jīng)解決問(wèn)題了,但我確實(shí)親身經(jīng)歷過(guò),以下是找到的報(bào)錯(cuò)

ERROR: The host system is too new.
Please run on a system with a glibc version no newer than what comes with the oldest.
still-supported mainstream distribution, which currently is glibc 2.20.
This is so that the resulting bundle will work on most still-supported Linux distributions.
For more information, please see
https://github.com/probonopd/linuxdeployqt/issues/340

回歸正題,我們下載源碼

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

之后解壓到ubuntu桌面并且打開(kāi).pro

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

如果你不是這樣的,而是只有一個(gè).pro文件沒(méi)有下面的src tests還有tools,那么很遺憾,你可能需要換一個(gè)版本或者自行解決了,我之前用的是6.5.2,就是會(huì)打不開(kāi)

之后進(jìn)到這個(gè)文件里面

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

看到這串藍(lán)色代碼了嗎?注釋掉

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

然后調(diào)整成release,右鍵linuxdeployqt那個(gè)文件夾然后右鍵點(diǎn)擊構(gòu)建

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

構(gòu)建完成就會(huì)像上面這樣,然后到生成的文件夾里面的bin文件夾下面可以看到這

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

右鍵在終端運(yùn)行,然后輸入

chmod 777 linuxdeployqt

sudo mv linuxdeployqt? /usr/local/bin

然后可以在控制臺(tái)輸入

linuxdeployqt -appimage

正常情況下就可以輸出這個(gè)了

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

如果不是的話,檢查一下之前export的qt路徑,

如果正常之后大家可以測(cè)試一下,把你要打包的那個(gè)可執(zhí)行文件放到文件夾下面然后再終端打開(kāi)并且輸入linuxdeployqt xxxx ,這里的xxxx是你的文件名,那么大概率會(huì)出現(xiàn)下圖的錯(cuò)誤,這個(gè)錯(cuò)誤是我截圖的,我本身遇到過(guò)這個(gè)錯(cuò)但是解決了

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

這個(gè)是缺少patchelf導(dǎo)致的,大家可以點(diǎn)擊下面的連接,

Channels for NixOS project(s)

然后按照域名索引進(jìn)行選擇patchelf下載就可以

下載后解壓進(jìn)入文件夾執(zhí)行如下命令

./configure

make

sudo make install

之后還需要下載最后一個(gè)包

Appimagetool

下載地址

https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage

下載完成后執(zhí)行如下命令:

sudo mv appimagetool-x86_64.AppImage appimagetool

chmod 777 appimagetool

sudo./appimagetool /usr/local/bin

之后進(jìn)入/usr/local/bin ,你會(huì)看到以上的三個(gè)文件,linuxdeployqt,patchelf,appimagetool

之后把編譯生成的包放到文件夾下面,然后輸入

Linuxdeployqt xxx -appimage即可開(kāi)始打包

期間也會(huì)有其他錯(cuò)誤,例如沒(méi)有fuse運(yùn)行不了之類的,這種錯(cuò)誤直接

Sudo apt-get install fuse

這樣獲取fuse能解決百分之九十九的問(wèn)題

其他的可以自行查閱,問(wèn)題不是很大的,

但打包任然會(huì)報(bào)一個(gè)錯(cuò)誤

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

別慌,一切盡在掌握,打開(kāi)打包生成的這個(gè)文件

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

修改成這樣

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

然后再次執(zhí)行,就可以打包成功并且得到這個(gè)文件

qt生成可執(zhí)行文件linux,linux,ubuntu,運(yùn)維

這個(gè)就是我們最后的打包啦,到別人的電腦上的話別人要首先賦予他可執(zhí)行權(quán)限然后在命令行,注意是命令行,輸入./xxxx xxxx是打包出來(lái)的.appimage的全稱,包括后綴,雖然linux不看后綴,就可以在其他電腦上運(yùn)行了,當(dāng)然實(shí)測(cè)也需要新電腦安裝fuse

之間還有一些問(wèn)題就是高版本的ubuntu打包出來(lái)的程序在低版本上面運(yùn)行會(huì)報(bào)錯(cuò),顯示glibc版本缺失,這個(gè)問(wèn)題我還沒(méi)有解決,只能夠說(shuō)盡量在同版本甚至更高版本上面運(yùn)行打包的程序吧,或者降低打包的電腦的版本也不失為一種解決方案,但仍然有待測(cè)試

最后,看在我是個(gè)本科生的份上,各位哥哥姐姐能不能給我點(diǎn)一個(gè)贊呢?真的是本科生??!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-761735.html

到了這里,關(guān)于linux平臺(tái)下qt程序的編譯以及使用linuxdeployqt打包可執(zhí)行程序和在高版本22.04ubuntu下使用linuxdeployqt打包文件的問(wèn)題的文章就介紹完了。如果您還想了解更多內(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)文章

  • 銀河麒麟下,QT5.12.10、linuxdeployqt安裝及DEB打包教程

    銀河麒麟下,QT5.12.10、linuxdeployqt安裝及DEB打包教程

    2.1.1.將“打包工具.tar.gz”解壓,里面有兩個(gè)文件 linuxdeployqt libz.so 2.1.2.在解壓當(dāng)前目錄下輸入一下命令: sudo cp ./linuxdeployqt /usr/local/bin sudo rm /usr/lib/aarch64-linux-gnu/libz.so sudo cp ./libz.so /usr/lib/aarch64-linux-gnu sudo chmod +x /usr/local/bin/linuxdeployqt 2.1.3.驗(yàn)證打包工具安裝成功命令: $linu

    2024年02月04日
    瀏覽(21)
  • Tauri開(kāi)發(fā)的程序,使用github action快速跨平臺(tái)編譯并發(fā)布流程,包括Windows、mac、m芯片、linux等,以及常見(jiàn)報(bào)錯(cuò)

    Tauri開(kāi)發(fā)的程序,使用github action快速跨平臺(tái)編譯并發(fā)布流程,包括Windows、mac、m芯片、linux等,以及常見(jiàn)報(bào)錯(cuò)

    Tauri 嚴(yán)重依賴原生庫(kù)和工具鏈,因此目前無(wú)法在某一平臺(tái)實(shí)現(xiàn)交叉編譯。最佳選擇是使用托管在?GitHub Action、Azure Pipelines、GitLab?或其他選項(xiàng)上的 CI/CD 管道進(jìn)行編譯。管道可以同時(shí)為每個(gè)平臺(tái)運(yùn)行編譯,使編譯和發(fā)布過(guò)程更加容易。 為了便于設(shè)置,官方目前提供?Tauri Action。

    2024年02月10日
    瀏覽(28)
  • 統(tǒng)信UOS系統(tǒng)開(kāi)發(fā)筆記(七):在統(tǒng)信UOS系統(tǒng)上使用linuxdeployqt發(fā)布qt程序

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

    若該文為原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明原文出處 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/131411975 紅胖子(紅模仿)的博文大全:開(kāi)發(fā)技術(shù)集合(包含Qt實(shí)用技術(shù)、樹(shù)莓派、三維、OpenCV、OpenGL、ffmpeg、OSG、單片機(jī)、軟硬結(jié)合等等)持續(xù)更新中…(點(diǎn)擊傳送門) 上一篇:《統(tǒng)信

    2024年02月11日
    瀏覽(29)
  • Qt 編譯程序打包依賴庫(kù)

    windows環(huán)境 使用windeployqt.exe 打包 linux環(huán)境 使用ldd命令打包

    2024年02月13日
    瀏覽(19)
  • QT6修改程序圖標(biāo)和名字以及打包部署

    QT6修改程序圖標(biāo)和名字以及打包部署

    只需要將ico文件放在工程文件的同級(jí)文件夾中,然后在pro文件中加入 RC_ICONS=ico文件的名字 參考:https://blog.csdn.net/chqaz123/article/details/126607641,https://blog.csdn.net/weixin_41255248/article/details/129538146 與參加鏈接中有些不同,按照一下步驟 **一、**自己下載一個(gè)ico圖片作為備用, 最好

    2024年02月11日
    瀏覽(18)
  • linux QT程序打包

    GitHub - probonopd/linuxdeployqt: Makes Linux applications self-contained by copying in the libraries and plugins that the application uses, and optionally generates an AppImage. Can be used for Qt and other applications GitHub - NixOS/patchelf: A small utility to modify the dynamic linker and RPATH of ELF executables 1、可以到上面鏈接上下載源代碼

    2024年01月16日
    瀏覽(25)
  • Linux下QT程序打包

    Linux下QT程序打包

    ? ? ? ? 網(wǎng)上有關(guān)QT程序打包的教程大多都是Windows下的教程,有關(guān)Linux下QT程序打包的教程很少,而且大多說(shuō)的不是很詳細(xì),在這里我整理了以下有關(guān)Linux下QT程序打包的方法,僅供大家參考學(xué)習(xí),有關(guān)Windows下QT程序打包的方法可以看我另一篇博客“QT項(xiàng)目超詳細(xì)打包教程。 ?

    2024年02月16日
    瀏覽(20)
  • Qt Linux 環(huán)境中應(yīng)用程序打包

    Qt Linux 環(huán)境中應(yīng)用程序打包

    系統(tǒng)環(huán)境:Ubuntu20.04LTS 開(kāi)發(fā)環(huán)境:Qt5.14.1 在進(jìn)入程序部署打包之前,閱讀官方的部署文檔Deploy,通常情況下,我們?cè)陂_(kāi)發(fā)的時(shí)候,Qt Creator 的左下角構(gòu)建模式為Debug,便于我們調(diào)試編寫程序。Qt的三個(gè)構(gòu)建模式Debug、Profile、Release的區(qū)別是: debug可以調(diào)試程序,而release不可以。在

    2024年02月01日
    瀏覽(88)
  • Linux 打包Qt程序到無(wú)Qt環(huán)境Linux系統(tǒng)下運(yùn)行,問(wèn)題記錄

    Linux 打包Qt程序到無(wú)Qt環(huán)境Linux系統(tǒng)下運(yùn)行,問(wèn)題記錄

    Linux 環(huán)境下Qt開(kāi)發(fā)的攝像頭程序用到了opencv的庫(kù),需要跟Qt環(huán)境一起打包。 1.打包所有關(guān)聯(lián)庫(kù)用的是腳本程序。 2.新建空文件夾放入編譯好的release qt程序,比如攝像頭程序 camera,新建打包腳本copylib.sh放在文件夾下。 ? 3.終端執(zhí)行?./copylib.sh camera 會(huì)打包 camera程序所需的關(guān)聯(lián)庫(kù)。

    2024年02月16日
    瀏覽(27)
  • Linux下打包發(fā)布QT程序,并運(yùn)行在其他沒(méi)有安裝QT環(huán)境的linux系統(tǒng)上

    Linux下打包發(fā)布QT程序,并運(yùn)行在其他沒(méi)有安裝QT環(huán)境的linux系統(tǒng)上

    一、Linux下打包發(fā)布步驟如下 編譯應(yīng)用程序環(huán)境:ubuntu18.04版本 開(kāi)發(fā)環(huán)境:Qt5.14.2 編譯環(huán)境:gcc_64 要移植的電腦:ubuntu18.04版本,沒(méi)有開(kāi)發(fā)環(huán)境 第一步:打包依賴庫(kù) 1、創(chuàng)建一個(gè)打包目錄,把生成的可執(zhí)行文件拷貝放在創(chuàng)建的打包目錄下,這里我是創(chuàng)建了一個(gè)打包目錄名稱為

    2024年02月12日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包