女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在玲瓏容器中編譯qBittorrent并測(cè)試運(yùn)行

深度操作系統(tǒng) ? 來源:深度操作系統(tǒng) ? 2025-03-10 11:26 ? 次閱讀

通過《如意玲瓏應(yīng)用構(gòu)建指南(一):規(guī)范體系與配置文件全解析》的學(xué)習(xí)后,相信大家已經(jīng)對(duì)玲瓏應(yīng)用構(gòu)建工程基礎(chǔ)知識(shí)有了一定的了解。在接下來的系列推文中,我們將深入實(shí)操環(huán)節(jié),帶大家利用所學(xué)知識(shí)正式構(gòu)建玲瓏應(yīng)用。

本篇作為“如意玲瓏應(yīng)用構(gòu)建從入門到實(shí)戰(zhàn)”系列的第二篇,我們將以開源圖形應(yīng)用 qBittorrent 為例,為大家將演示如何進(jìn)入玲瓏容器、以及如何在玲瓏容器中編譯 qBittorrent 并測(cè)試運(yùn)行。

01前期準(zhǔn)備

根據(jù)玲瓏應(yīng)用構(gòu)建工程通用資源的規(guī)范要求,我們應(yīng)當(dāng)為一款圖形化應(yīng)用同時(shí)提供保障桌面用戶體驗(yàn)的 icons 圖標(biāo)文件及 desktop 啟動(dòng)文件。但本節(jié)實(shí)操演示僅在玲瓏容器中進(jìn)行編譯、測(cè)試操作,因此暫時(shí)不需要準(zhǔn)備通用資源。 本次分享基于 deepin 23 發(fā)行版,因此在進(jìn)行以下任意步驟前均需要準(zhǔn)備一個(gè)可以構(gòu)建玲瓏應(yīng)用的 deepin 23 系統(tǒng)環(huán)境:

確保環(huán)境中已經(jīng)安裝 ll-builder 構(gòu)建套件, 不同發(fā)行版安裝方式參考如意玲瓏安裝教程[1];

由于在構(gòu)建過程中我們需要聯(lián)網(wǎng)獲取玲瓏容器的運(yùn)行庫以及可能需要的第三方庫,因此我們需要保障全操作過程能夠得到順暢的網(wǎng)絡(luò)連接;

在通過玲瓏容器編譯前, 最好先在比較接近本次構(gòu)建容器的 deepin 23 中成功編譯過 qBittorrent,以確保你對(duì)源代碼編譯有一定的了解

結(jié)合上一節(jié)玲瓏應(yīng)用構(gòu)建工程 linglong.yaml 規(guī)范,并按照以下模板簡(jiǎn)單編寫一版玲瓏構(gòu)建工程配置文件 linglong.yaml,以此來生成一個(gè)符合要求的容器。

主要有以下兩個(gè)方面需要關(guān)注:

由于本次操作是直接進(jìn)入容器進(jìn)行操作,因此 build 部分的構(gòu)建規(guī)則可不詳細(xì)寫;

由于本次涉及編譯操作,為了能夠極大程度包含所需的運(yùn)行庫,我們加入 runtime 段,具體編寫規(guī)范參考《如意玲瓏應(yīng)用構(gòu)建指南(一)》。

# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd.
#
# SPDX-License-Identifier: LGPL-3.0-or-later


version: "4.6.7.2"


package:
  id: org.qbittorrent.qBittorrent
  name: "qBittorrent"
  version: 4.6.7.2
  kind: app
  description: |
    qBittorrent binary


base: org.deepin.foundation/23.0.0
runtime: org.deepin.Runtime/23.0.1


command:
  - /opt/apps/org.qbittorrent.qBittorrent/files/bin/qbittorrent


source:
  - kind: local
    name: "qBittorrent"


build: |
  mkdir -p ${PREFIX}/bin/ ${PREFIX}/share/

02項(xiàng)目編譯演示

在這里需要回顧一個(gè)知識(shí)點(diǎn): 根據(jù)玲瓏應(yīng)用目錄結(jié)構(gòu)規(guī)范,與構(gòu)建工程配置文件 linglong.yaml 同級(jí)的構(gòu)建目錄將被映射為 /project 目錄。

萬事俱備,我們就可以開始編譯了

1. 為了方便操作,在構(gòu)建目錄下同時(shí)開啟兩個(gè) shell 窗口,分別用于玲瓏容器操作普通操作

2. 在完成準(zhǔn)備 linglong.yaml 編輯后,我們就可以開始生成容器了,執(zhí)行有限的操作以直接進(jìn)入玲瓏容器:

szbt@szbt-linyaps23:/media/szbt/Data/ll-build/QT/qBittorrent-git$ ll-builder build --exec bash
路徑發(fā)生類似以下變化時(shí),即意味著我們已經(jīng)進(jìn)入玲瓏容器中了。
szbt@szbt-linyaps23:/project$
3.通過普通操作窗口解壓 qBittorrent-4.6.7 源碼到構(gòu)建目錄中,我這里單獨(dú)解壓到一個(gè)子目錄中。
szbt@szbt-linyaps23:/media/szbt/Data/ll-build/QT/qBittorrent-git$ tar -xvf qBittorrent-4.6.7-git-origin-src.tar.zst -C src/

4. 源碼解壓后,根據(jù)玲瓏應(yīng)用構(gòu)建基本步驟,我們?cè)诰幾g任意源代碼前應(yīng)該正確選擇使用何種編譯系統(tǒng)/工具。我們通過觀察 qBittorrent-4.6.7 源碼目錄, 可以看到其存在 CMakeLists.txt 文件,這是 CMake 構(gòu)建項(xiàng)目。

00f9943e-fa74-11ef-9310-92fbcf53809c.png

5.由于 qBittorrent INSTALL[2]中簡(jiǎn)要描述了本項(xiàng)目主要使用的運(yùn)行庫,因此我們可以對(duì)照此文檔來判斷哪些運(yùn)行庫存在與玲瓏提供的 base、runtime 中,或哪些運(yùn)行庫并未被提供。對(duì)于暫未被正式提供的運(yùn)行庫,在編譯主程序前我們可能需要先預(yù)編譯必要的第三方庫。

由于文檔所述需要的運(yùn)行庫較少,此次我們可以先直接進(jìn)行一次測(cè)試編譯來確認(rèn)運(yùn)行庫缺失情況。

6.通過玲瓏容器操作窗口進(jìn)入源碼目錄,為了盡量避免對(duì)源目錄的干擾,我這里新建一個(gè) build 目錄用于編譯。進(jìn)入 build 目錄后我們輸入 CMake 相關(guān)配置參數(shù)來配置構(gòu)建工程。

根據(jù)玲瓏應(yīng)用目錄結(jié)構(gòu)規(guī)范,我們將 DCMAKE_INSTALL_PREFIX 賦予 $PREFIX 的值,最終我在本地執(zhí)行了以下操作:

  cmake -DCMAKE_BUILD_TYPE=Release
 -DCMAKE_INSTALL_PREFIX=$PREFIX ..

7. 可以從圖中看到,這里出現(xiàn)了一個(gè)錯(cuò)誤導(dǎo)致無法完成配置。我們看到 pkg-config 出現(xiàn)錯(cuò)誤:libtorrent-rasterbar>=1.2.19 庫不能滿足條件:

010b0d86-fa74-11ef-9310-92fbcf53809c.png

-- Found PkgConfig: /bin/pkg-config (found version "1.8.1") 
-- Checking for module 'libtorrent-rasterbar>=1.2.19'
單獨(dú)通過 pkg-config 亦無法獲取該庫的相關(guān)信息:
szbt@szbt-linyaps23:/project/src/qBittorrent-release-4.6.7-szbt2/build$ pkg-config --print-provides libtorrent-rasterbar

結(jié)合此報(bào)錯(cuò),基本可以判斷為該庫缺失,因此我們需要在編譯主程序前編譯并安裝此第三方庫。

8. 返回普通操作窗口將 libtorrent-rasterbar>=1.2.19 庫對(duì)應(yīng)的源碼下載到當(dāng)前構(gòu)建目錄中,進(jìn)入玲瓏容器操作窗口重新編譯。

9. 源碼解壓后,根據(jù)玲瓏應(yīng)用構(gòu)建基本步驟,我們?cè)诰幾g任意源代碼前應(yīng)該正確選擇使用何種編譯系統(tǒng)/工具。我們通過觀察 libtorrent-rasterbar-2.0.9 源碼目錄,可以看到其存在 CMakeLists.txt 文件,這是 CMake 構(gòu)建項(xiàng)目。

014206ce-fa74-11ef-9310-92fbcf53809c.png

10. 我們通過玲瓏容器操作窗口進(jìn)入源碼目錄,為了盡量避免對(duì)源目錄的干擾,我這里新建一個(gè) build 目錄用于編譯。進(jìn)入 build 目錄后我們輸入 CMake 相關(guān)配置參數(shù)來配置構(gòu)建工程。

根據(jù)玲瓏應(yīng)用目錄結(jié)構(gòu)規(guī)范,我們將 DCMAKE_INSTALL_PREFIX 賦予 $PREFIX 的值,最終我在本地執(zhí)行了以下操作:

  cmake -DCMAKE_BUILD_TYPE=Release
 -DCMAKE_INSTALL_PREFIX=$PREFIX ..
  make -j$(nproc)
  make install

可以看到, 第三方庫 libtorrent-rasterbar-2.0.9 成功完成編譯并安裝到容器的 $PREFIX 目錄中了,我們可以開啟下一個(gè)操作。

11. 我們返回玲瓏容器操作窗口進(jìn)入 qBittorrent-4.6.7 源碼目錄,重新執(zhí)行配置、編譯、安裝操作, 均不存在報(bào)錯(cuò)了。

03編譯結(jié)果測(cè)試

流程結(jié)束后,在 $PREFIX 目錄中找到該項(xiàng)目的二進(jìn)制執(zhí)行文件并在容器中運(yùn)行測(cè)試,該二進(jìn)制執(zhí)行文件為: /opt/apps/org.qbittorrent.qBittorrent/files/bin/qbittorrent 注意,該操作需要在圖形化桌面的終端操作,否則有可能無法調(diào)起程序的圖形界面。

由下圖可見并不是直接通過容器啟動(dòng),發(fā)生了運(yùn)行庫無法找到的問題,因?yàn)閳?bào)錯(cuò)的庫也在 $PREFIX 中,因此我們直接通過變量 LD_LIBRARY_PATH 來指定動(dòng)態(tài)運(yùn)行庫尋找路徑。

014f796c-fa74-11ef-9310-92fbcf53809c.png

由此可見,qBittorrent 已經(jīng)成功在如意玲瓏應(yīng)用容器中成功編譯并運(yùn)行!

關(guān)于項(xiàng)目

如意玲瓏(Linyaps)是一種新型的獨(dú)立包管理工具集,專注于解決 Linux 系統(tǒng)下由傳統(tǒng)軟件包格式的復(fù)雜性和交叉依賴關(guān)系引起的兼容性問題。項(xiàng)目通過先進(jìn)的隔離技術(shù),將應(yīng)用與系統(tǒng)完全解耦,從根本上解決因環(huán)境變化引發(fā)的應(yīng)用兼容性問題,實(shí)現(xiàn)“一個(gè)架構(gòu),一次構(gòu)建”,致力于簡(jiǎn)化軟件開發(fā)流程、降低維護(hù)成本、加強(qiáng)數(shù)據(jù)安全,促進(jìn)技術(shù)與平臺(tái)間的協(xié)同合作,構(gòu)建一個(gè)更加繁榮、安全和高效的 Linux 軟件生態(tài)環(huán)境。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    3587

    瀏覽量

    43473
  • 容器
    +關(guān)注

    關(guān)注

    0

    文章

    507

    瀏覽量

    22364
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    676

    瀏覽量

    33746

原文標(biāo)題:如意玲瓏應(yīng)用構(gòu)建指南(二):在玲瓏容器中編譯基于 Qt5 的開源應(yīng)用

文章出處:【微信號(hào):linux_deepin,微信公眾號(hào):深度操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    嵌入式Qt-做一個(gè)秒表

    本篇通過一個(gè)秒表的實(shí)例,介紹了如何使用Qt Creator的UI界面設(shè)計(jì)功能,進(jìn)行Qt的開發(fā),并將代碼進(jìn)行交叉編譯,放入i.MX6ULL的Linux環(huán)境測(cè)試運(yùn)行情況。
    的頭像 發(fā)表于 09-08 08:52 ?2560次閱讀
    嵌入式Qt-做一個(gè)秒表

    何在Docker創(chuàng)建容器

    Docker是一個(gè)開源的引擎,可以輕松的為任何應(yīng)用創(chuàng)建一個(gè)輕量級(jí)的、可移植的、自給自足的容器。開發(fā)者在筆記本上編譯測(cè)試通過的容器可以批量地在生產(chǎn)環(huán)境中部署,包括VMs(虛擬機(jī))、bar
    發(fā)表于 01-03 15:58

    C6748程序測(cè)試運(yùn)行速度很慢

    寫了一小段程序,測(cè)C6748程序運(yùn)行速度,實(shí)際上就是通過用for循環(huán)對(duì)數(shù)組循環(huán)賦值,測(cè)試運(yùn)行速度,程序如下:unsigned charbuffer[1024];void RunSpeedTest
    發(fā)表于 09-19 07:51

    如何又好又快的測(cè)試多組穩(wěn)速電機(jī)?

    用戶設(shè)置的參數(shù)自動(dòng)配置儀器的狀態(tài),完成對(duì)產(chǎn)品的測(cè)試。 參數(shù)設(shè)置界面4、測(cè)試運(yùn)行界面進(jìn)入到測(cè)試運(yùn)行界面,測(cè)試人員在運(yùn)行
    發(fā)表于 11-15 11:03

    關(guān)于c6678測(cè)試運(yùn)行OpenMP例程問題

    的支持。出現(xiàn)的問題:1. platform一欄沒有ti.runtime.openmp.platform.evm6678選項(xiàng)。但可以手動(dòng)填寫。2. 編譯時(shí)會(huì)顯示 XDCCGROOT環(huán)境變量沒有設(shè)置。請(qǐng)問
    發(fā)表于 04-29 17:08

    倍福TwinCAT應(yīng)用教程12.1 TwinCAT控制松下伺服 連接和試運(yùn)行

    首先是用松下伺服自帶的軟件可以測(cè)試運(yùn)行(驅(qū)動(dòng)器,電機(jī)都連接好,然后用USB線連接到松下伺服驅(qū)動(dòng)器的X1口),打開調(diào)試軟件會(huì)自動(dòng)提示連接到伺服 一般需要對(duì)驅(qū)動(dòng)器清除絕對(duì)值編碼器數(shù)據(jù)(驅(qū)動(dòng)器可能報(bào)錯(cuò)40
    發(fā)表于 07-02 07:29

    何在嵌入式容器Jetty或Tomcat運(yùn)行帶有Maven的Java Web應(yīng)用程序

    在開發(fā)Java Web應(yīng)用程序時(shí),從“真實(shí)”環(huán)境獲得快速反饋非常實(shí)用。 在本文中,我將探討如何在嵌入式容器Jetty或Tomcat運(yùn)行
    發(fā)表于 12-16 06:24

    矢量字庫移植測(cè)試的相關(guān)資料推薦

    單片機(jī)移植矢量字庫,測(cè)試運(yùn)行速度
    發(fā)表于 01-10 07:15

    怎樣把編譯好的Uboot寫入station p2開機(jī)試運(yùn)行一次呢

    怎樣把編譯好的Uboot寫入station p2開機(jī)試運(yùn)行一次呢?
    發(fā)表于 03-02 07:56

    使用身邊搭載HarmonyOS環(huán)境的實(shí)體真機(jī)進(jìn)行測(cè)試指南

    1、使用真機(jī)測(cè)試運(yùn)行HarmonyOS應(yīng)用想要做華為應(yīng)用開發(fā),首先你需要安裝Deveco studio編譯軟件然后.你就可以進(jìn)行編程了,但是測(cè)試自己的程序需要HarmonyOS的環(huán)境。目前有三種方式
    發(fā)表于 05-24 17:31

    大佬們,如何測(cè)試運(yùn)行一條指令要多少時(shí)間?

    大佬們,如何測(cè)試運(yùn)行一條指令要多少時(shí)間,我目前想用定時(shí)器中斷做步進(jìn)電機(jī)S型加減速,想在回調(diào)函數(shù)內(nèi)關(guān)全局中斷,最后再打開,防止電機(jī)運(yùn)行出錯(cuò),這種想法是否可取?又該如何測(cè)試某條指令耗的時(shí)間有多少?
    發(fā)表于 09-08 15:35

    為藍(lán)牙RF測(cè)試測(cè)試運(yùn)行edgefast_ blueooth_ shell,按下命令bt. init沒有反應(yīng)是怎么回事?

    我正在嘗試為藍(lán)牙 RF 測(cè)試測(cè)試運(yùn)行“ edgefast_ blueooth_ shell ” 演示。 但是, 如果我運(yùn)行演示并按下命令“ bt. init ” , 它沒有反應(yīng), 我無法輸入任何
    發(fā)表于 11-13 07:28

    何在Docker容器運(yùn)行Nginx

    在本教程,您將學(xué)習(xí)如何將 Nginx 作為 Docker 容器運(yùn)行,并將其公開給您的本地網(wǎng)絡(luò)。此外,您將學(xué)習(xí)如何創(chuàng)建 Docker 數(shù)據(jù)卷以在容器和主機(jī)文件系統(tǒng)之間共享信息。
    的頭像 發(fā)表于 02-17 09:30 ?2255次閱讀

    何在 CFD 設(shè)計(jì)利用網(wǎng)格維護(hù)幾何形狀減少運(yùn)行時(shí)間?

    何在 CFD 設(shè)計(jì)利用網(wǎng)格維護(hù)幾何形狀減少運(yùn)行時(shí)間?
    的頭像 發(fā)表于 11-24 17:07 ?706次閱讀
    如<b class='flag-5'>何在</b> CFD 設(shè)計(jì)<b class='flag-5'>中</b>利用網(wǎng)格維護(hù)幾何形狀<b class='flag-5'>并</b>減少<b class='flag-5'>運(yùn)行</b>時(shí)間?

    如意玲瓏應(yīng)用構(gòu)建規(guī)則實(shí)用案例

    通過《如意玲瓏應(yīng)用構(gòu)建指南(二):在玲瓏容器編譯基于 Qt5 的開源應(yīng)用》的學(xué)習(xí)后,相信大家已經(jīng)基本了解了在
    的頭像 發(fā)表于 03-25 11:17 ?279次閱讀
    如意<b class='flag-5'>玲瓏</b>應(yīng)用構(gòu)建規(guī)則實(shí)用案例