c ++ 14-如何在Windows中使用独立的libcurl库启用HTTPs

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

问题: Libcurl在Windows上充当独立库,但是不支持https协议,如何启用它?在测试或使用CurlClient时,它可以正常工作。当我尝试向https站点发送请求时,收到卷曲响应代码1,这意味着https是不受支持的协议。

当我建立curl时,我的cmake日志:

-- curl version=[7.69.0-DEV]
CMake Warning at lib/curl/CMake/Macros.cmake:86 (message):
  Found no *nroff program
Call Stack (most recent call first):
  lib/curl/CMakeLists.txt:215 (curl_nroff_check)

-- Could NOT find LibSSH2 (missing: LIBSSH2_LIBRARY) (found version "1.8.2")
-- Enabled features: IPv6 AsynchDNS NTLM
-- Enabled protocols: DICT FILE FTP GOPHER HTTP IMAP LDAP POP3 RTSP SMB SMTP TELNET TFTP
-- Enabled SSL backends:

我的项目结构:

CMakeLists.txt
/lib
 /curl
 /googletest
 CMakeLists.txt
/src
 /include
    CurlClient.h
 CurlClient.cc
 CMakeLists.txt
/test
 CurlClientTest.cc
 main.cc
 CMakeLists.txt

src / CMakeLists.txt:

cmake_minimum_required(VERSION 3.10.2)

project(simple_curl_cpp)

set(BUILD_SHARED_LIBS OFF)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

add_subdirectory(src)
add_subdirectory(lib)
add_subdirectory(test)

lib / CMakeLists.txt:

cmake_minimum_required(VERSION 3.10.2)

message(STATUS "Not using system Curl, using built-in curl project instead.")
option(BUILD_TESTING "Set to ON to build cURL tests." OFF)
option(BUILD_CURL_EXE "Set to ON to build cURL executable." OFF)
add_subdirectory(curl)

set(gtest_force_shared_crt TRUE CACHE INTERNAL "")
set(BUILD_GMOCK TRUE CACHE INTERNAL "")
set(INSTALL_GTEST FALSE)
set(gmock_build_tests FALSE CACHE INTERNAL "")
add_subdirectory(googletest)

test / CMakeLists.txt:

cmake_minimum_required(VERSION 3.10.2)

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

set(SOURCES
    CurlClientTest.cc
    ../src/CurlClient.cc   
)

set(HEADERS
    ../src/include/CurlClient.h
)

# googletest
enable_testing()

add_executable(simple_curl_cpp_test "main.cc" ${SOURCES} ${HEADERS})
target_link_libraries(simple_curl_cpp_test libcurl gtest)

add_test(
    NAME simple_curl_cpp_test
    COMMAND simple_curl_cpp_test
)

斯特拉格给出的答案:

在lib / CMakeLists.txt中,在add_subdirectory(curl)之前键入此:

option(CMAKE_USE_WINSSL "Set to ON to use WINSSL for windows." ON)
c++ curl cmake libcurl
1个回答
1
投票

配置时尝试设置CMAKE_USE_WINSSL CMake变量:

PS> "C:\Program Files\CMake\bin\cmake.exe" -DCMAKE_USE_WINSSL=ON ..
-- Building for: Visual Studio 16 2019
[snip]
-- Enabled features: SSL IPv6 AsynchDNS SSPI SPNEGO Kerberos NTLM
-- Enabled protocols: DICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS LDAP POP3 POP3S RTSP SMB SMBS SMTP SMTPS TELNET TFTP
-- Enabled SSL backends: WinSSL
[snip]
-- Configuring done
[snip]

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