關于deepin上運行Qt開發的程序

國產化替代是將來各單位的主流趨勢,探索自行開發應用程序在國產操作系統上正常運行是將來的主要工作之一。本文淺嘗gui程序在統信社區版——deepin上遇到的小問題。

使用Qt在deepin上做了一個類似gif的幀動畫彈窗,在編譯運行時,程序可以正常運行,但是會報錯顯示:

qt.qpa.plugin: Could not find the Qt platform plugin "dxcb" in ""

在網上查,有說需要在/etc/profile中添加環境變量

export QT_QPA_PLATFORM_PLUGIN_PATH=/path/to/Qt/plugins/platforms

試了,還是報錯,但程序能運行。

直接在終端運行編譯后的可執行文件,又報如下錯誤:

/home/shell811127/workspace/qt/build-test-unknown-Debug/test: error while loading shared libraries: libicui18n.so.63: cannot open shared object file: No such file or directory

使用ldd查看程序依賴的鏈接庫,發現有3個依賴找不到,其中包括上面報錯的庫名

ldd /home/shell811127/workspace/qt/build-test-unknown-Debug/test
linux-vdso.so.1 (0x00007ffe3cfa9000)libQt5Widgets.so.5 => /opt/deepin-shared-libs/Qt5.15.10gles/lib/libQt5Widgets.so.5 (0x00007f7511e00000)libQt5Gui.so.5 => /opt/deepin-shared-libs/Qt5.15.10gles/lib/libQt5Gui.so.5 (0x00007f7511600000)libQt5Core.so.5 => /opt/deepin-shared-libs/Qt5.15.10gles/lib/libQt5Core.so.5 (0x00007f7511000000)libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f7510c00000)libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f751258f000)libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7511c1c000)libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7512588000)libGLESv2.so.2 => /lib/x86_64-linux-gnu/libGLESv2.so.2 (0x00007f7512576000)libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7512497000)libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f75115ca000)libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f7512478000)libharfbuzz.so.0 => /lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007f7510eda000)libicui18n.so.63 => not foundlibicuuc.so.63 => not foundlibicudata.so.63 => not foundlibdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7512471000)libpcre2-16.so.0 => /lib/x86_64-linux-gnu/libpcre2-16.so.0 (0x00007f7510b78000)libgthread-2.0.so.0 => /lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007f751246a000)libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f7510a2c000)

直接使用find / -name libicui18n.so.63 查找三個缺失的文件,發現系統中存在,不過都在Qt的安裝目錄下:/opt/deepin-shared-libs/Qt5.15.10gles/lib/

嘗試在系統目錄下建立軟連接:

sudo ln -s /opt/deepin-shared-libs/Qt5.15.10gles/lib/libicui18n.so.63 /usr/lib/x86_64-linux-gnu/libicui18n.so.63

再在終端執行編譯后的執行文件,發現缺失的庫文件名變了,說明之前的庫文件系統找到了。于是嘗試把剛才ldd查找的缺失庫文件全部在/usr/lib/x86_64-linux-gnu/下建立軟連接,程序可正常執行了。

總結,在Qt中編譯運行時,程序會默認到Qt的lib目錄下尋找依賴,但在操作系統中運行可執行文件,系統默認會在/usr/lib/x86_64-linux-gnu/目錄下查找依賴,所以要想正常運行開發的程序,需要手動將程序依賴拷貝到系統目錄下,程序方可正常運行。這有點像在windows下安裝程序,需要將dll文件拷貝到system32下,只不過這里的目錄是/usr/lib/x86_64-linux-gnu/。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/66913.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/66913.shtml
英文地址,請注明出處:http://en.pswp.cn/web/66913.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Unity自學之旅05

Unity自學之旅05 Unity學習之旅⑤📝 AI基礎與敵人行為🥊 AI導航理論知識(基礎)開始實踐 🎃 敵人游戲機制追蹤玩家攻擊玩家子彈碰撞完善游戲失敗條件 🤗 總結歸納 Unity學習之旅⑤ 📝 AI基礎與敵…

我想通過python語言,學習數據結構和算法該如何入手?

學習數據結構和算法是編程中的重要基礎,Python 是一個非常適合入門的語言。以下是學習數據結構和算法的步驟和建議: 1. 掌握 Python 基礎 確保你對 Python 的基本語法、數據類型、控制結構(如循環、條件語句)、函數等有扎實的理…

淺談Unity中Canvas的三種渲染模式

Overview UGUI通過 Canvas 組件渲染和管理UI元素。Canvas 是 UI 元素的容器,它決定了 UI 元素的渲染方式以及它們在屏幕上的顯示效果。Canvas 有三種主要的渲染模式,每種模式有不同的用途和特點。本文將介紹這三種渲染模式 1. Screen Space - Overlay 模…

Unity中在UI上畫線

在UI中畫一條曲線 我封裝了一個組件,可以實現基本的畫線需求. 效果 按住鼠標左鍵隨手一畫. 用起來也很簡單,將組件掛到空物體上就行了,紅色的背景是Panel. 你可以將該組件理解為一個Image,只不過形狀更靈活一些罷了,所以它要放在下面的層級(不然可能會被擋住). 代碼 可以…

2024.1.22 安全周報

政策/標準/指南最新動態 01 工信部印發《關于加強互聯網數據中心客戶數據安全保護的通知》 原文: https://www.secrss.com/articles/74673 互聯網數據中心作為新一代信息基礎設施,承載著千行百業的海量客戶數據,是關系國民經濟命脈的重要戰略資源。…

探索 LLM:從基礎原理到 RAG 實現的深度解析

一.LLM基礎知識 1.1 大語言模型(Large Language Model,LLM) 他是模型,是 AI 能力的核心。他是語言模型,其核心能力在于語言能力。他是大語言模型,與傳統模型相比,它最大的特點就是“大”。 1…

Mac cursor設置jdk、Maven版本

基本配置 – Cursor 使用文檔 首先是系統用戶級別的設置參數,運行cursor,按下ctrlshiftp,輸入Open User Settings(JSON),在彈出的下拉菜單中選中下面這樣的: 在打開的json編輯器中追加下面的內容: {"…

ARM64平臺Flutter環境搭建

ARM64平臺Flutter環境搭建 Flutter簡介問題背景搭建步驟1. 安裝ARM64 Android Studio2. 安裝Oracle的JDK3. 安裝 Dart和 Flutter 開發插件4. 安裝 Android SDK5. 安裝 Flutter SDK6. 同意 Android 條款7. 運行 Flutter 示例項目8. 修正 aapt2 報錯9. 修正 CMake 報錯10. 修正 N…

selenium clear()方法清除文本框內容

在使用Selenium進行Web自動化測試時,清除文本框內容是一個常見的需求。這可以通過多種方式實現,取決于你使用的是哪種編程語言(如Python、Java等)以及你的具體需求。以下是一些常見的方法: 1. 使用clear()方法 clear…

基于海思soc的智能產品開發(視頻的后續開發)

【 聲明:版權所有,歡迎轉載,請勿用于商業用途。 聯系信箱:feixiaoxing 163.com】 前面我們討論了camera,也討論了屏幕驅動,這些都是基礎的部分。關鍵是,我們拿到了這些視頻數據之后,…

vue3+webOffice合集

1、webOffice 初始化 1)officeType: 文檔位置:https://solution.wps.cn/docs/web/quick-start.html#officetype 2)appId: 前端使用appId 后端需要用到AppSecret 3)fileId: 由后端返回,前端無法生成,與上傳文…

2025牛客寒假算法營2

A題 知識點&#xff1a;模擬 打卡。檢查給定的七個整數是否僅包含 1,2,3,5,6 即可。為了便于書寫&#xff0c;我們可以反過來&#xff0c;檢查這七個整數是否不為 4 和 7。 時間 O(1)&#xff1b;空間 O(1)。 #include <bits/stdc.h> using namespace std;signed main()…

記錄一次k8s起不來的排查過程

我在k8s集群&#xff0c;重啟了一個node宿主機&#xff0c;竟然發現kubelet起不來了&#xff01;報錯如下 這個報錯很模糊&#xff0c;怎么排查呢。這樣&#xff0c;開兩個界面&#xff0c;一個重啟kubelet&#xff0c;一個看系統日志(/var/log/message:centos&#xff0c;/va…

Docker Desktop 在Windows 環境中開發、測試和運行容器化的應用程序

Docker 為 Windows 提供了專門的桌面版工具&#xff0c;稱為 Docker Desktop&#xff0c;它允許你在 Windows 環境中開發、測試和運行容器化的應用程序。 如何在 Windows 上使用 Docker Docker Desktop Docker Desktop 是一個專為 Windows 設計的應用程序&#xff0c;它簡化了…

仿 RabbitMQ 的消息隊列3(實戰項目)

七. 消息存儲設計 上一篇博客已經將消息統計文件的讀寫代碼實現了&#xff0c;下一步我們將實現創建隊列文件和目錄。 實現創建隊列文件和目錄 初始化 0\t0 這樣的初始值. //創建隊列對應的文件和目錄&#xff1a;public void createQueueFile(String queueName) throws IO…

HTTP 配置與應用(局域網)

想做一個自己學習的有關的csdn賬號&#xff0c;努力奮斗......會更新我計算機網絡實驗課程的所有內容&#xff0c;還有其他的學習知識^_^&#xff0c;為自己鞏固一下所學知識&#xff0c;下次更新HTTP 配置與應用&#xff08;不同網段&#xff09;。 我是一個萌新小白&#xf…

root用戶Linux銀河麒麟服務器安裝vnc服務

安裝必要桌面環境組件 yum install mate-session-manager -y mate-session #確定是否安裝成功安裝vnc服務器 yum install tigervnc-server -y切換到root為root得vnc設置密碼 su root vncpasswd給root用戶設置vnc服務器文件 vi /etc/systemd/system/vncserver:1.service [Un…

理解深度學習pytorch框架中的線性層

文章目錄 1. 數學角度&#xff1a; y W x b \displaystyle y W\,x b yWxb示例 2. 編程實現角度&#xff1a; y x W T b \displaystyle y x\,W^T b yxWTb3. 常見錯誤與易混點解析4. 小結參考鏈接 在神經網絡或機器學習的線性層&#xff08;Linear Layer / Fully Connect…

C#Object類型的索引,序列化和反序列化

前言 最近在編寫一篇關于標準Mes接口框架的文章。其中有一個非常需要考究的內容時如果實現數據靈活和可使用性強。因為考慮數據靈活性&#xff0c;所以我一開始選取了Object類型作為數據類型&#xff0c;Object作為數據Value字段&#xff0c;String作為數據Key字段&#xff0c…

大模型應用與部署 技術方案

大模型應用與部署 技術方案 一、引言 人工智能蓬勃發展,Qwen 大模型在自然語言處理領域地位關鍵,其架構優勢盡顯,能處理文本創作等多類復雜任務,提供優質交互。Milvus 向量數據庫則是向量數據存儲檢索利器,有高效索引算法(如 IVF_FLAT、HNSWLIB 等)助力大規模數據集相似…