Связывание libcurl с CMake на Windows - PullRequest
0 голосов
/ 01 апреля 2020

Если я пытаюсь собрать cURL, он показывает мне следующий вывод:

Checking Build System
  Building Custom Rule C:/CPP/Projects/WebsiteGuardian/CMakeLists.txt
LINK : warning LNK4098: Standardbibliothek "LIBCMTD" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Biblioth
ek verwenden. [C:\CPP\Projects\WebsiteGuardian\build\WebsiteGuardian.vcxproj]
  WebsiteGuardian.vcxproj -> C:\CPP\Projects\WebsiteGuardian\build\Debug\WebsiteGuardian.exe
  Building Custom Rule C:/CPP/Projects/WebsiteGuardian/CMakeLists.txt

Я строю это так: я скачал текущий .zip отсюда: curl.haxx.se/download.html После этого я создаю curl с помощью: «Установить RTLIBCFG = stati c» и «nmake / f Makefile.v c mode = stati c VC = 15 MACHINE = x86 DEBUG = no». Я скопировал каталог include- и lib в мою папку проекта. Это также будет найдено успешно. Мои CMakeLists.txt:

cmake_minimum_required(VERSION 3.10)
project(WebsiteGuardian CXX)

set(CMAKE_CXX_STANDARD 17)
set(CURL_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/include)
set(CURL_LIBRARY ${CMAKE_SOURCE_DIR}/lib/libcurl_a_debug.lib )

add_definitions(-DCURL_STATICLIB)
find_package(CURL REQUIRED)
include_directories(${CURL_INCLUDE_DIR})

add_executable(WebsiteGuardian "src/main.cpp")
target_link_libraries(WebsiteGuardian ${CURL_LIBRARY} wldap32 ws2_32 Crypt32.lib Wldap32 Normaliz)

1 Ответ

0 голосов
/ 02 апреля 2020

Спасибо за множество ответов. Это прекрасно работает для меня:

cmake_minimum_required(VERSION 3.10)
project(WebsiteGuardian CXX)

set(CMAKE_CXX_STANDARD 17)
set(CURL_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/include)
set(CURL_LIBRARY ${CMAKE_SOURCE_DIR}/lib/libcurl_a_debug.lib )
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")

add_definitions(-DCURL_STATICLIB)

find_package(CURL REQUIRED)
include_directories(${CURL_INCLUDE_DIR})

add_executable(WebsiteGuardian "src/main.cpp")
target_link_libraries(WebsiteGuardian ${CURL_LIBRARY} wldap32 ws2_32 Crypt32.lib Wldap32 Normaliz)
...