qt.tlsbackend.ossl: Failed to load libssl/libcrypto.

我的環境是windows,QT6.3.2(msvc2019_64/mingw_64)

出錯原因

? ? ? ? QT沒有正確加載OpenSSL。

解決過程

1、確保安裝的有openssl。

? 文章結尾有個注意,是其他方式安裝過openssl,環境變量有,但是QT找不到的問題。

? ? ? 在我這次使用的時候,沒有單獨去安裝OpenSSL,因為我在QT的下面路徑找到了需要的庫。

????????????????

? ? ? ? 我不太確定這是我安裝QT時特意選的,還是默認就有,反正如果沒有,盡量到官網下載,因為結尾的注意會討論這個事。

2、解決方法

方法一:

? ? ? ? 把上述文件復制到你所使用版本QT的下面路徑下:

????????注意你使用的是mingw_64就往這復制,使用的msvc2019就往對應的文件夾復制

復制完應該就可以用了。

方法二:

? ? ? ? 將上面找的的文件所在地址添加到環境變量

注意添加完,需要確定環境變量,然后重新啟動QTcreator才能生效。

不要急,等一下下,不行再重啟試試。

我下面是刪掉環境變量的實驗結果,(實驗代碼在下面),左邊是打開馬上運行的結果,他找到了!!!但是環境變量被我刪了!!!不應該找到啊!!!

我差點以為寫這么半天做了無用功,結果我看了一下他項目里用到的環境變量,并沒有啊,然后我又運行了一下,?他又沒找到,而且自己單開了一個輸出頁面,不理解。反正結果是對的。

驗證是否成功

#include <QSslSocket>
#include <QDebug>int main() {qDebug() << "OpenSSL supported:" << QSslSocket::supportsSsl();qDebug() << "OpenSSL runtime version:" << QSslSocket::sslLibraryVersionString();return 0;
}

直接把上面這段放在main.cpp運行。

注意上述結果雖然寫了個true,但是沒成功調用OpenSSL,而是調用Channel。我這個true是因為寫教程的時候環境改了又改,有點混亂了,如果沒有使用什么辦法的話,它可能顯示false,不影響,反正后面顯示的實際使用了Secure Channel, Windows。

Qt 默認優先使用 OpenSSL 來處理 HTTPS 請求。如果無法加載 OpenSSL 的動態庫(libssl.dll 和 libcrypto.dll),Qt 會嘗試使用其他可用的 TLS 后端(如 Windows 的 SChannel 或 macOS 的 SecureTransport)。

其實如果你不介意使用 Windows 的 SChannel 而不是 OpenSSL,并且程序運行正常,可以選擇忽略這條警告信息。

我一開始就是不懂,看起來好像功能實現了,但是它在最開始報了這個警告。就是下面這樣。

這就是使用SChannel實現了功能。

如果環境弄成功了,應該是下面的結果:

如果上面的方法沒有成功,可能是OpenSSL版本問題,可能與QT不對應,自行百度下。

遇到的一個問題

注意:遇到另一個問題就是我最初發現我的電腦里有OpenSSL,并且添加了環境變量,但是無法使用。

在終端輸入命令openssl version獲得的openssl不一定可用

上述是我在我電腦里找到的,一開始以為有,能夠用命令搜到其實應該是添加了環境變量,我一開始沒反應過來,又手動添加了一次,發現不能用。根據文件夾名稱可以看到,我是安裝strawberry的時候帶的,我其實都忘了這個strawberry拿來干啥的了。。。?

一開始以為是因為他是.exe執行文件所以不行,但是打開目錄發現他有那兩個動態庫:

?而且都是x64的,注意這個也是個點,沒有x64就代表是32位的,至于是不是所有版本QT都是用64位的,這需要自己去找了。

一開始我以為通過其他東西附帶的這種方式下載的不全,用不了。

后面我思考了一下,應該是版本不行的問題。

真正要注意的來了:

想著送佛送到西,為了驗證是不是版本問題,結果整出很多事。

結論:

? ? ? ? 1、QTcreator里面找到的高版本就按前面說的來,就沒問題,理論官網下的應該也沒問題。

? ? ? ? 2、重點是后面分析的strawberry問題,strawberry里的那2個庫文件名字中帶了2橫杠,把strawberry里的2個文件的最后的2個橫杠刪掉復制到方法一的位置(例:F:\Qt\6.3.2\mingw_64\bin),注意strawberry文件里的文件名不變。或者是strawberry文件里那2個文件刪掉2橫桿,復制給方法一里面的不刪。反正就是strawberry文件夾里和(例:F:\Qt\6.3.2\mingw_64\bin)里,一個帶橫杠一個不帶,但必須2個都有,很怪,但確實是這樣。反正這樣弄完他確實是strawberry里面的版本。。。。。。要用這個方法的,就是電腦里其他什么東西下載過openssl的,建議選擇在(例:F:\Qt\6.3.2\xxxx_64\bin)里面修改文件名,原路徑不動,避免影響其他程序。還有試了這個復制文件的方法與環境變量無關。

? ? ? ? ?3、就是建議QT里面沒有openssl庫的,去官網重新下吧,雖然我無意找到了其他地方存在openssl庫,然后能讓QT使用的方法,但是會改文件名,不太清楚會對原本的程序有什么影響,所以我最后就沒去動strawberry,還是使用的QT里面找到的版本。

下面是部分心路歷程,本來是要寫過程的,結果越來越匪夷所思,懶得寫了。

上面不是提到我安strawberry里面順帶安裝了openssl嗎,但是不能用。我把他們復制到QT里去試一下,不用環境變量的方式。還好我為了嚴謹,把VC和GW文件夾都試一遍,VC復制完,運行不成功,結果復制到GW的時候我復制錯地方,復制到QTcreator下面,就是找到能用open SSL動態庫的地方,我一下警覺,他沒有給我報重復文件的提示,我再想是不是之前被我剪切了,結果沒有,然后我仔細對比了文件名,,,strawberry里的多了2個橫杠,因為安裝straw時他自己添加過環境,所以我把名字里的橫杠去掉后,直接運行驗證代碼:

?到這以為成功了,結束了,結果才是詭異的開始,太復雜,懶得寫了。。。

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

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

相關文章

【Linux】用戶權限

shell命令 1. Linux本質上是一個操作系統&#xff0c;但是一般的用戶不能直接使用它&#xff0c;而是需要通過外殼程序shell&#xff0c;來與Linux內核進行溝通。 2. shell的簡單定義&#xff1a;命令行解釋器。主要包含以下作用&#xff1a; 將使用者的命令翻譯給核心處理。將…

賽靈思 XC7K325T-2FFG900I FPGA Xilinx Kintex?7

XC7K325T-2FFG900I 是 Xilinx Kintex?7 系列中一款工業級 (I) 高性能 FPGA&#xff0c;基于 28 nm HKMG HPL 工藝制程&#xff0c;核心電壓標稱 1.0 V&#xff0c;I/O 電壓可在 0.97 V–1.03 V 之間靈活配置&#xff0c;并可在 –40 C 至 100 C 溫度范圍內穩定運行。該器件提供…

【題解-Acwing】847. 圖中點的層次

題目:847. 圖中點的層次 題目描述 給定一個 n 個點 m 條邊的有向圖,圖中可能存在重邊和自環。 所有邊的長度都是 1,點的編號為 1~n。 請你求出 1 號點到 n 號點的最短距離,如果從 1 號點無法走到 n 號點,輸出 ?1 。 輸入 第一行包含兩個整數 n 和 m。 接下來 m 行…

css圖片設為灰色

使用filter方式將圖片設置為灰色 普通圖片使用&#xff1a;filter: saturate(0); 純白圖片使用&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"width…

【Luogu】動態規劃一

P5414 [YNOI2019] 排序 - 洛谷 思路&#xff1a; 可以想到對于任意一個需要換位置的數字&#xff0c;我們不可能換兩次及以上&#xff0c;那么這題就可以轉化為求一個最大和的最長不遞減子序列&#xff0c;最后的答案就是眾和減去這個最大和 代碼&#xff1a; #include <…

什么是管理思維?

管理思維是指在管理活動中形成的系統性、戰略性和創造性的思考方式&#xff0c;幫助個人或團隊更高效地達成目標。它不僅適用于企業管理&#xff0c;也適用于個人成長、項目執行和復雜問題解決。以下是關于管理思維的核心內容&#xff1a; 一、管理思維的核心特征 1. 系統性思…

利用TCP+多進程技術實現私聊信息

服務器&#xff1a; import socket from multiprocessing import Process from threading import Threaduser_dic {}def send_recv(client_conn, client_addr):while 1:# 接收客戶端發送的消息res client_conn.recv(1024).decode("utf-8")print("客戶端發送…

Hbuilder 上的水印相機實現方案 (vue3 + vite + hbuilder)

效果 思路 通過 live-pusher 這個視頻推流的組件來獲取攝像頭拿到視頻的一幀圖片之后&#xff0c;跳轉到正常的 vue 頁面&#xff0c;通過 canvas 來處理圖片水印 源碼 live-pusher 這個組件必須是 nvue 的 至于什么是 nvue&#xff0c;看這個官方文檔吧 https://uniapp.dcl…

Spark,IDEA編寫Maven項目

IDEA中編寫Maven項目 1.打開IDEA新建項目2.選擇java語言&#xff0c;構建系統選擇Maven 3.IDEA中配置Maven 注&#xff1a;這些文件都是我們老師幫我們在網上找了改動后給我們的&#xff0c;大家可自行在網上查找 編寫代碼測試HDFS連接 1.在之前創建的pom.xml文件中添加下…

初識Redis · C++客戶端set和zset

目錄 前言&#xff1a; set sadd sismember smembers spop scard sinter sinterstore zset zadd zrange zcard zrem zrank zscore 前言&#xff1a; 前文我們已經介紹了string list hash在Redis-plus-plus的使用&#xff0c;本文我們開始介紹set和zset在redis-plus-pl…

sed命令筆記250419

sed命令筆記250419 sed&#xff08;Stream Editor&#xff09;是 Linux/Unix 系統中強大的流編輯器&#xff0c;主要用于對文本進行過濾和轉換&#xff08;按行處理&#xff09;。它支持正則表達式&#xff0c;適合處理文本替換、刪除、插入等操作。以下是 sed 的詳細解析&…

ubuntu-24.04.2-live-server-arm64基于cloud-init實現分區自動擴容(LVM分區模式)

1. 環境 虛擬機鏡像ISO&#xff1a;ubuntu-24.04.2-live-server-arm64.iso 2. 定制cloud-init鏡像 2.1 安裝OS 基于ubuntu-24.04.2-live-server-arm64.iso&#xff0c;通過virt-manager安裝操作系統&#xff0c;語言建議選擇英文&#xff0c;分區選擇基于LVM的自動分區&…

vue3專題1------父組件中更改子組件的屬性

理解 Vue 3 中父組件如何引用子組件的屬性是一個很重要的概念。 這里涉及到 defineExpose 和 ref 這兩個關鍵點。 方法&#xff1a;使用 defineExpose 在子組件中暴露屬性&#xff0c;然后在父組件中使用 ref 獲取子組件實例并訪問暴露的屬性。 下面我將詳細解釋這個過程&…

數據倉庫分層架構解析:從理論到實戰的完整指南??

數據倉庫分層是構建高效數據體系的核心方法論。本文系統闡述ODS、DWD、DWS、ADS四層架構的設計原理&#xff0c;結合電商用戶行為分析場景&#xff0c;詳解各層功能及協作流程&#xff0c;并給出分層設計的原則與避坑指南&#xff0c;幫助讀者掌握分層架構的落地方法。 一、為什…

從零搭建一套前端開發環境

一、基礎環境搭建 1.NVM(Node Version Manager)安裝 簡介 nvm&#xff08;Node Version Manager&#xff09; 是一個用于管理多個 Node.js 版本的工具&#xff0c;允許開發者在同一臺機器上輕松安裝、切換和使用不同版本的 Node.js。它特別適合需要同時維護多個項目&#xff…

計算機組成原理筆記(十六)——4.1基本算術運算的實現

計算機中最基本的算術運算是加法運算&#xff0c;加、減、乘、除運算最終都可以歸結為加法運算。 4.1.1加法器 一、加法器的基本單元 加法器的核心單元是 全加器&#xff08;Full Adder, FA&#xff09;&#xff0c;而所有加法器都由 半加器&#xff08;Half Adder, HA&…

利用Qt創建一個模擬問答系統

界面&#xff1a; 添加了聊天顯示區域&#xff08;QTextEdit&#xff09; 添加了發送按鈕和清空對話按鈕 優化了布局和窗口大小添加了時間戳顯示 2、功能&#xff1a; 支持實時對話可以清空對話歷史 支持按回車發送消息 添加了簡單的關鍵詞匹配響應系統 交互體驗&#x…

神經光子渲染:物理級真實感圖像生成——從麥克斯韋方程到深度學習

一、技術背景與核心突破 2025年&#xff0c;神經光子渲染&#xff08;Photonic Neural Rendering, PNR&#xff09;技術通過物理光學方程與神經輻射場的深度融合&#xff0c;在AIGC檢測工具&#xff08;如GPTDetector 5.0&#xff09;的識別準確率從98%降至12%。該技術突破性地…

Linux中手動安裝7-Zip軟件文檔

7zip位于EPEL源中&#xff0c;如果服務器可以聯網或者配置了本地EPEL源則可以直接安裝 yum install p7zip p7zip-plugins -y對于無法聯網且沒有配置本地EPEL源的服務器&#xff0c;可以通過官網下載安裝包后&#xff0c;上傳至服務器&#xff0c;手動安裝 ## 下載地址&#x…

[密碼學基礎]GM/T 0018-2023 密碼設備應用接口規范深度解析:技術革新與開發者實踐

GM/T 0018-2023 密碼設備應用接口規范深度解析&#xff1a;技術革新與開發者實踐 GM/T 0018-2023《密碼設備應用接口規范》是中國密碼行業的重要標準&#xff0c;于2023年12月4日發布&#xff0c;2024年6月1日正式實施&#xff0c;替代了2012年版標準。該標準旨在規范密碼設備…