靜態鏈接 qt 失敗

配置靜態構建 qt

如下所示,執行配置的時候添加 -static 選項即可。

$skiped_modules = @("qttools""qtdoc""qttranslations""qtlanguageserver""qtdeclarative""qtquicktimeline""qtquick3d""qtgraphs""qtlocation""qtlottie""qtmqtt""qtopcua""qtquick3dphysics""qtquickeffectmaker""qtvirtualkeyboard""qtwebengine""qtwebview"
)Invoke-Expression "../configure.bat -static -skip $($skiped_modules -join ",") -prefix ${install_path}"
if ($LASTEXITCODE)
{throw "$source_path 配置失敗"
}

自行鏈接各種靜態庫

靜態鏈接 qt 時,很多依賴需要手動鏈接靜態庫解決。以下是我鏈接的

target_link_libraries(${target_name} PUBLICsetupapizsynchronizationpcre2-16double-conversionntdllversionharfbuzzb2zstdnetapi32authzws2_32winmmuserenvdwritepngmd4cd3d12dxgid3d11
)

此外還要自行鏈接 libqwindows.a

運行時仍然報錯

做了上述工作后,我的基于 qt 的程序編譯、鏈接完成了。但是運行時仍然輸出如下信息:

qt.qpa.plugin: Could not find the Qt platform plugin "windows" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. 

并且這個時候我把 qt 插件的那些 dll 部署到可執行文件所在目錄,或者整個 platform 拷貝到可執行文件所在目錄都不管用,仍然報錯。

不折騰了。qt 比較流行動態鏈接,我見過的基于 qt 的軟件都是動態連接的,因為攜帶了一大堆 qt 的 dll 和 platform/qwindows.dll 。此外大多數庫使用動態鏈接,如果使用靜態鏈接,但是又鏈接了這些庫,最終又變成動態鏈接了,并且可執行文件里面含了重復的 qt 代碼。

后來成功了

成功將 qt 構建為靜態庫并鏈接,成功運行。見另一篇博客:將 qt 構建為靜態庫

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

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

相關文章

Qt 多線程界面更新策略

在Qt開發中,界面(UI)更新是高頻操作——無論是后臺任務的進度展示、傳感器數據的實時刷新,還是網絡消息的即時顯示,都需要動態更新界面元素。但Qt對UI操作有一個核心限制:所有UI組件的創建和更新必須在主線…

1.09---區塊鏈節點到底做了什么?從全節點到輕客戶端

鯤志博主出品 Web2 開發者的 Web3 修煉之路 ??【好看的靈魂千篇一律,有趣的鯤志一百六七!】- 歡迎認識我~~ 作者:鯤志說 (公眾號、B站同名,視頻號:鯤志說996) 科技博主:極星會 星輝大使 全棧研發:java、go、python、ts,前電商、現web3 主理人:COC杭州開發者…

Linux線程概念與控制(下)

目錄 前言 2.線程控制 1.驗證理論 2.引入pthread線程庫 3.linux線程控制的接口 3.線程id及進程地址空間布局 4.線程棧 前言 本篇是緊接著上一篇的內容,在有了相關線程概念的基礎之上,我們將要學習線程控制相關話題!! 2.線程…

力扣面試150題--只出現一次的數字

Day 91 題目描述## 思路 交換律&#xff1a;a ^ b ^ c <> a ^ c ^ b 任何數于0異或為任何數 0 ^ n > n 相同的數異或為0: n ^ n > 0 根據以上 很容易想到做法&#xff0c;將數組中所有的數異或起來&#xff0c;得到的就是只出現一次的數 class Solution {public in…

【運維基礎】Linux 進程調度管理

Linux 進程調度管理 進程調度器 現代計算機系統中既包含只有單個CPU且任何時候都只能處理單個指令的低端系統到具有幾百個cpu、每個cpu有多個核心的高性能超級計算機&#xff0c;可以并行執行幾百個指令。所有這些系統都有一個共同點&#xff1a;系統進程線程數量超出了CPU數量…

深度學習篇---層與層之間搭配

在深度學習中&#xff0c;各種層&#xff08;比如卷積層、激活函數、池化層等&#xff09;的搭配不是隨意的&#xff0c;而是像 “搭積木” 一樣有規律 —— 每一層的作用互補&#xff0c;組合起來能高效提取特征、穩定訓練&#xff0c;最終提升模型性能。下面用通俗易懂的方式…

服務器多線主要是指什么?

在數字化的網絡環境當中&#xff0c;服務器已經成為各個企業提升線上業務發展的重要網絡設備&#xff0c;其中服務器多線則是指一臺服務器中能夠同時接入多個網絡運營商&#xff0c;并且通過智能路由技術實現用戶訪問請求的自動化分配&#xff0c;大大提高了用戶訪問數據信息的…

從0到1學PHP(三):PHP 流程控制:掌控程序的走向

目錄一、條件語句&#xff1a;程序的 “抉擇路口”1.1 if 語句家族&#xff1a;基礎與進階1.2 switch 語句&#xff1a;精準匹配的 “導航儀”二、循環語句&#xff1a;程序的 “重復舞步”2.1 for 循環&#xff1a;有序的 “征程”2.2 while 與 do - while 循環&#xff1a;條…

uni-app框架基礎

闡述 MVC 模式1, MVC與MVVMMVC 他是后端的一個開發思想MVVM是基于MVC中的view這層所分離出來的一種設計模式。MVC架構詳解MVC&#xff08;Model-View-Controller&#xff09;是一種廣泛使用的軟件設計模式&#xff0c;主要用于分離應用程序的業務邏輯、用戶界面和輸入控制。這種…

智慧收銀系統開發進銷存庫存統計,便利店、水果店、建材與家居行業的庫存匯總管理—仙盟創夢IDE

在零售與批發行業的數字化轉型中&#xff0c;當前庫存匯總作為進銷存管理的核心環節&#xff0c;直接影響著企業的資金周轉、銷售決策和客戶滿意度。現代收銀系統已超越傳統的收款功能&#xff0c;成為整合多渠道數據、實現實時庫存匯總的中樞神經。本文將深入剖析便利店、水果…

selenium(WEB自動化工具)

定義解釋 Selenium是一個用于Web應用程序測試的工具。Selenium測試直接運行在瀏覽器中&#xff0c;就像真正的用戶在操作一樣。支持的瀏覽器包括IE&#xff08;7, 8, 9, 10, 11&#xff09;&#xff0c;Mozilla Firefox&#xff0c;Safari&#xff0c;Google Chrome&#xff0…

windows本地使用conda部署Open-webui

前提條件 Open-webui使用python3.11.9 步驟 conda操作也可以參考 安裝python torch、transformer、記錄 1、conda環境 # 創建環境 conda create --name openwebui python3.11.9# 激活環境 conda activate openwebui# 升級pip版本 pip install --upgrade pip# pip安裝openwe…

【Unity筆記04】數據持久化

&#x1f31f; 方案核心思想遵循以下設計原則&#xff1a;數據安全第一&#xff1a;絕不使用明文存儲&#xff0c;采用AES加密算法保護數據。性能優化&#xff1a;使用異步I/O操作&#xff0c;避免阻塞主線程導致游戲卡頓。結構清晰&#xff1a;模塊化設計&#xff0c;職責分離…

深入理解 HTML5 Web Workers:提升網頁性能的關鍵技術解析

深入理解 HTML5 Web Workers&#xff1a;提升網頁性能的關鍵技術解析引言1. 什么是 Web Workers&#xff1f;Web Workers 的特點&#xff1a;2. Web Workers 的使用方式2.1 創建一個 Web Worker步驟 1&#xff1a;創建 Worker 文件步驟 2&#xff1a;在主線程中調用 Worker3. W…

會議室預定系統核心技術:如何用一行SQL解決時間沖突檢測難題

文章目錄 一、為什么時間沖突檢測是預定系統的核心挑戰? 二、黃金法則:兩行線段重疊檢測法 三、四大沖突場景實戰解析(同一會議室) 四、生產環境完整解決方案 1. 基礎沖突檢測函數 2. 預定API處理流程 3. 高級邊界處理技巧 五、性能優化關鍵策略 六、不同數據庫的適配方案 …

13.正則表達式:文本處理的瑞士軍刀

正則表達式&#xff1a;文本處理的瑞士軍刀 &#x1f3af; 前言&#xff1a;當文本遇上神奇的密碼 想象一下&#xff0c;你是一個圖書管理員&#xff0c;面對著一堆亂七八糟的書籍信息&#xff1a; “聯系電話&#xff1a;138-1234-5678”“郵箱地址&#xff1a;zhang.sangm…

linux下c語言訪問mysql數據庫

一、連接數據庫基礎1. 頭文件與庫文件連接 MySQL 需包含的頭文件&#xff1a;#include <mysql/mysql.h> // 部分環境也可用 #include <mysql.h> 編譯鏈接時&#xff0c;Linux 平臺需指定庫名&#xff1a;-lmysqlclient &#xff0c;用于鏈接 MySQL 客戶端函數庫。2…

6. 傳輸層協議 UDP

傳輸層負責數據能夠從發送端傳輸接收端.1. 再談端口號端口號(Port)標識了一個主機上進行通信的不同的應用程序在 TCP/IP 協議中, 用 "源 IP", "源端口號", "目的 IP", "目的端口號", "協議號" 這樣一個五元組來標識一個通信…

vue 開發總結:從安裝到第一個交互頁面-與數據庫API

vue 總結 1、安裝vue&#xff1a; WinR 輸入&#xff1a;cnpm install -g vue/cli 驗證是否安裝成功&#xff1a;vue --version 2、新建Vue工程 在對應文件夾下右擊打開集成終端 輸入 vue create query_system&#xff08;新建項目名字&#xff09;名稱不能存在大寫&#x…

運維筆記:HTTP 性能優化

一、HTTP 協議特性與性能瓶頸1.1 HTTP 協議發展歷程HTTP 協議的演進直接影響著 Web 性能&#xff0c;各版本關鍵特性對比&#xff1a;協議版本發布時間核心特性性能優勢局限性HTTP/1.01996 年無狀態、短連接簡單易實現每次請求需建立 TCP 連接HTTP/1.11999 年長連接、管道化減少…