Qt TLS 初始化失败

问题描述 投票:0回答:2

ide 是 Clion,Qt6.2.2,MSVS 2019,64 位,windows 10 21H1

我想用Visual studio替换Clion(程序可以在vs中运行)

代码是

QNetworkAccessManager manager;
manager.get(request);

q调试()<< QSslSocket::supportsSsl() << QSslSocket::sslLibraryBuildVersionString() << QSslSocket::sslLibraryVersionString() << QSslSocket::sslLibraryVersionNumber();

显示:假,“”,“”,-1

我的cmake:

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)

set(CMAKE_PREFIX_PATH "C:\\Qt\\6.2.2\\msvc2019_64")
set(INC_DIR C:\\Qt\\Tools\\OpenSSL\\Win_x64\\include)
set(LINK_DIR C:\\Qt\\Tools\\OpenSSL\\Win_x64\\lib)
include_directories(${INC_DIR})
link_directories(${LINK_DIR})
link_libraries(libcrypto libssl)

find_package(OpenSSL REQUIRED)
find_package(Qt6 COMPONENTS
        Core
        Gui
        Widgets
        Network
        REQUIRED)

add_executable(untitled
        main.cpp 
        )


target_link_libraries(untitled PRIVATE
        Qt6::Core
        Qt6::Gui
        Qt6::Widgets
        Qt6::Network
        OpenSSL::SSL
        OpenSSL::Crypto
        )

程序运行显示:

qt.network.ssl: No TLS backend is available
qt.network.ssl: No functional TLS backend was found
qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed
false "" "" -1

cmake 显示:

C:\Users\mainj\AppData\Local\JetBrains\Toolbox\apps\CLion\ch-0\213.6461.46\bin\cmake\win\bin\cmake.exe -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - NMake Makefiles" C:\Users\mainj\CLionProjects\untitled
-- The C compiler identification is MSVC 19.28.29914.0
-- The CXX compiler identification is MSVC 19.28.29914.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found OpenSSL: C:/Qt/Tools/OpenSSL/Win_x64/lib/libcrypto.lib (found version "1.1.1j")  
-- Looking for pthread.h
-- Looking for pthread.h - not found
-- Found Threads: TRUE  
-- Performing Test HAVE_STDATOMIC
-- Performing Test HAVE_STDATOMIC - Success
-- Found WrapAtomic: TRUE  
-- Could NOT find WrapVulkanHeaders (missing: Vulkan_INCLUDE_DIR) 
-- Found WrapOpenSSLHeaders: C:/Qt/Tools/OpenSSL/Win_x64/include (found version "1.1.1j") 
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/mainj/CLionProjects/untitled/cmake-build-debug

[Finished]
qt
2个回答
0
投票

我自己解决了。 只需使用

windeployqt.exe
即可导入所有库。

一切都好。


0
投票

为我解决的问题是: 我在可执行文件旁边复制了包含 3 个文件的 tls 文件夹

qcertonlybackend.dll
qopensslbackend.dll
qschannelbackend.dll

这些文件的位置在 qt 5.5 中不存在 这用 qt 6.5.1 为我解决了这个问题 我希望这也对其他人有帮助

© www.soinside.com 2019 - 2024. All rights reserved.