JosephP91 / curlcpp

An object oriented C++ wrapper for CURL (libcurl)
https://josephp91.github.io/curlcpp
MIT License
630 stars 174 forks source link

Linking against CurlCPP fails. CMake + MSBuild (Visual Studio 2017) #116

Closed zavodnyrichard closed 5 years ago

zavodnyrichard commented 6 years ago

Hi, I'm having problem with building my project, where I wan't use your library. I written my own CMake module for finding your library, however it doesn't work as excepted. The problem is probably somewhere else than in this CMake module, because it doesn't work with your solution (however edited to fit my needs) either (below this paragraph).

target_link_libraries(curlcpp C:\\libs\\curlcpp-1.1\\build\\src\\Debug\\curlcpp.lib)
include_directories(C:\\libs\\curlcpp-1.1\\include)

This is my CMakeLists.txt file:

cmake_minimum_required(VERSION 3.10.0)

project(curl)
add_executable(curl curl.cpp)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}")

#search for CURL and include it
set(CURL_LIBRARY "C:\\libs\\curl-7.59.0\\curl-7.59.0\\build\\Win32\\VC15\\LIB Debug\\libcurld.lib")
set(CURL_INCLUDE_DIR "C:\\libs\\curl-7.59.0\\curl-7.59.0\\include")

find_package(CURL REQUIRED)

if(CURL_FOUND)
    target_link_libraries(curl ${CURL_LIBRARIES})
    include_directories(${CURL_INCLUDE_DIRS})
endif()
#--

#search for CurlCPP and include it
set(CURLCPP_LIBRARY "C:\\libs\\curlcpp-1.1\\build\\src\\Debug\\curlcpp.lib")
set(CURLCPP_INCLUDE_DIR "C:\\libs\\curlcpp-1.1\\include")

find_package(CurlCPP REQUIRED)

if(CURLCPP_FOUND)
    target_link_libraries(curl ${CURLCPP_LIBRARIES})
    include_directories(${CURLCPP_INCLUDE_DIRS})
endif()
#--

This is my FindCurlCPP.cmake module:

#(C) 2018 Richard Závodný <zavodnyrichard@gmail.com>
#
#Output variables are:
#CURLCPP_LIBRARIES - CurlCPP library
#CURLCPP_INCLUDE_DIRS - CurlCPP header files (curl_easy.h, curl_global.h, etc.)
#CURLCPP_FOUND - Is true if CurlCPP was found
#
#Usage:
#set(CURLCPP_LIBRARY <curlcpp root directory>\\<path to curlcpp.lib>) #required only on Windows
#set(CURLCPP_INCLUDE_DIR <curlcpp root directory>\\include) #required only on Windows
#
#find_package(CurlCPP)
#
#if(CURLCPP_FOUND)
#    target_link_libraries(<your target> ${CURLCPP_LIBRARIES})
#    include_directories(${CURLCPP_INCLUDE_DIRS})
#endif()

#find the library
find_library(CURLCPP_LIBRARY NAMES curlcpp)

#find header files
find_path(CURLCPP_INCLUDE_DIR NAMES cookie.h cookie_date.h cookie_datetime.h cookie_time.h curl_config.h curl_cookie.h curl_easy.h curl_easy_info.h curl_exception.h curl_form.h curl_global.h curl_header.h curl_info.h curl_interface.h curl_ios.h curl_multi.h curl_option.h curl_pair.h curl_receiver.h curl_sender.h curl_share.h curl_utility.h)

#set CURLCPP_FOUND to TRUE if everything is ok
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(CURLCPP DEFAULT_MSG CURLCPP_LIBRARY CURLCPP_INCLUDE_DIR)

#set output vars
if(CURLCPP_FOUND)
    set(CURLCPP_LIBRARIES ${CURLCPP_LIBRARY})
    set(CURLCPP_INCLUDE_DIRS ${CURLCPP_INCLUDE_DIR})
else(CURLCPP_FOUND)
    set(CURLCPP_LIBRARIES)
    set(CURLCPP_INCLUDE_DIRS)
endif(CURLCPP_FOUND)

mark_as_advanced(CURLCPP_LIBRARIES CURLCPP_INCLUDE_DIRS)

And this is what I've done in order to build my project:

E:\projects\cpp-utils\curl\build>cmake ..
-- Building for: Visual Studio 15 2017
-- The C compiler identification is MSVC 19.13.26129.0
-- The CXX compiler identification is MSVC 19.13.26129.0
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found CURL: C:\libs\curl-7.59.0\curl-7.59.0\build\Win32\VC15\LIB Debug\libcurld.lib (found version "7.59.0")
-- Found CURLCPP: C:\libs\curlcpp-1.1\build\src\Debug\curlcpp.lib
-- Configuring done
-- Generating done
-- Build files have been written to: E:/projects/cpp-utils/curl/build

E:\projects\cpp-utils\curl\build>msbuild curl.sln
Microsoft (R) Build Engine version 15.6.82.30579 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
Build started 5/13/2018 11:54:58 AM.
Project "E:\projects\cpp-utils\curl\build\curl.sln" on node 1 (default targets).
ValidateSolutionConfiguration:
  Building solution configuration "Debug|Win32".
ValidateProjects:
  The project "ALL_BUILD" is not selected for building in solution configuration "Debug|Win32".
Project "E:\projects\cpp-utils\curl\build\curl.sln" (1) is building "E:\projects\cpp-utils\curl\build\ZERO_CHECK.vcxpro
j" (2) on node 1 (default targets).
PrepareForBuild:
  Creating directory "Win32\Debug\ZERO_CHECK\".
  Creating directory "E:\projects\cpp-utils\curl\build\Debug\".
  Creating directory "Win32\Debug\ZERO_CHECK\ZERO_CHECK.tlog\".
InitializeBuildStatus:
  Creating "Win32\Debug\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
CustomBuild:
  Checking Build System
  CMake does not need to re-run because E:/projects/cpp-utils/curl/build/CMakeFiles/generate.stamp is up-to-date.
FinalizeBuildStatus:
  Deleting file "Win32\Debug\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild".
  Touching "Win32\Debug\ZERO_CHECK\ZERO_CHECK.tlog\ZERO_CHECK.lastbuildstate".
Done Building Project "E:\projects\cpp-utils\curl\build\ZERO_CHECK.vcxproj" (default targets).

Project "E:\projects\cpp-utils\curl\build\curl.sln" (1) is building "E:\projects\cpp-utils\curl\build\curl.vcxproj.meta
proj" (3) on node 1 (default targets).
Project "E:\projects\cpp-utils\curl\build\curl.vcxproj.metaproj" (3) is building "E:\projects\cpp-utils\curl\build\curl
.vcxproj" (4) on node 1 (default targets).
PrepareForBuild:
  Creating directory "curl.dir\Debug\".
  Creating directory "curl.dir\Debug\curl.tlog\".
InitializeBuildStatus:
  Creating "curl.dir\Debug\curl.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
CustomBuild:
  Building Custom Rule E:/projects/cpp-utils/curl/CMakeLists.txt
  CMake does not need to re-run because E:/projects/cpp-utils/curl/build/CMakeFiles/generate.stamp is up-to-date.
ClCompile:
  C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.13.26128\bin\HostX86\x86\CL.exe /c /I"
  C:\libs\curl-7.59.0\curl-7.59.0\include" /I"C:\libs\curlcpp-1.1\include" /Zi /nologo /W3 /WX- /diagnostics:classic /O
  d /Ob0 /Oy- /D WIN32 /D _WINDOWS /D "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /EHsc /RTC1 /MTd /GS /fp:precise /Zc:wchar
  _t /Zc:forScope /Zc:inline /GR /Fo"curl.dir\Debug\\" /Fd"curl.dir\Debug\vc141.pdb" /Gd /TP /analyze- /FC /errorReport
  :queue "E:\projects\cpp-utils\curl\curl.cpp"
  curl.cpp
Link:
  C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.13.26128\bin\HostX86\x86\link.exe /ERR
  ORREPORT:QUEUE /OUT:"E:\projects\cpp-utils\curl\build\Debug\curl.exe" /INCREMENTAL /NOLOGO "C:\libs\curl-7.59.0\curl-
  7.59.0\build\Win32\VC15\LIB Debug\libcurld.lib" "C:\libs\curlcpp-1.1\build\src\Debug\curlcpp.lib" kernel32.lib user32
  .lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFEST
  UAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"E:/projects/cpp-utils/curl/build/Debug/curl.pdb
  " /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"E:/projects/cpp-utils/curl/build/Debug/curl.lib" /MACHI
  NE:X86 /SAFESEH  /machine:X86 curl.dir\Debug\curl.obj
curl.obj : error LNK2019: unresolved external symbol __imp__curl_global_init referenced in function "public: __thiscall
 curl::curl_interface<enum CURLcode>::global_initialisator::global_initialisator(long)" (??0global_initialisator@?$curl
_interface@W4CURLcode@@@curl@@QAE@J@Z) [E:\projects\cpp-utils\curl\build\curl.vcxproj]
curlcpp.lib(curl_easy.obj) : error LNK2001: unresolved external symbol __imp__curl_global_init [E:\projects\cpp-utils\c
url\build\curl.vcxproj]
curl.obj : error LNK2019: unresolved external symbol __imp__curl_global_cleanup referenced in function "public: __thisc
all curl::curl_interface<enum CURLcode>::global_initialisator::~global_initialisator(void)" (??1global_initialisator@?$
curl_interface@W4CURLcode@@@curl@@QAE@XZ) [E:\projects\cpp-utils\curl\build\curl.vcxproj]
curlcpp.lib(curl_easy.obj) : error LNK2001: unresolved external symbol __imp__curl_global_cleanup [E:\projects\cpp-util
s\curl\build\curl.vcxproj]
curl.obj : error LNK2019: unresolved external symbol __imp__curl_easy_strerror referenced in function "public: __thisca
ll curl::curl_easy_exception::curl_easy_exception(enum CURLcode const &,class std::basic_string<char,struct std::char_t
raits<char>,class std::allocator<char> > const &)" (??0curl_easy_exception@curl@@QAE@ABW4CURLcode@@ABV?$basic_string@DU
?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) [E:\projects\cpp-utils\curl\build\curl.vcxproj]
curlcpp.lib(curl_easy.obj) : error LNK2001: unresolved external symbol __imp__curl_easy_strerror [E:\projects\cpp-utils
\curl\build\curl.vcxproj]
curl.obj : error LNK2019: unresolved external symbol __imp__curl_easy_init referenced in function "public: __thiscall c
url::curl_easy::curl_easy<class std::basic_ostringstream<char,struct std::char_traits<char>,class std::allocator<char>
> >(class curl::curl_ios<class std::basic_ostringstream<char,struct std::char_traits<char>,class std::allocator<char> >
 > &)" (??$?0V?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@curl_easy@curl@@QAE@AAV?$curl_ios@V?
$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@1@@Z) [E:\projects\cpp-utils\curl\build\curl.vcxpro
j]
curlcpp.lib(curl_easy.obj) : error LNK2001: unresolved external symbol __imp__curl_easy_init [E:\projects\cpp-utils\cur
l\build\curl.vcxproj]
curl.obj : error LNK2019: unresolved external symbol __imp__curl_easy_setopt referenced in function "public: void __thi
scall curl::curl_easy::add<10002>(char const *)" (??$add@$0CHBC@@curl_easy@curl@@QAEXPBD@Z) [E:\projects\cpp-utils\curl
\build\curl.vcxproj]
curlcpp.lib(curl_easy.obj) : error LNK2001: unresolved external symbol __imp__curl_easy_setopt [E:\projects\cpp-utils\c
url\build\curl.vcxproj]
curlcpp.lib(curl_easy.obj) : error LNK2019: unresolved external symbol __imp__curl_easy_escape referenced in function "
public: void __thiscall curl::curl_easy::escape(class std::basic_string<char,struct std::char_traits<char>,class std::a
llocator<char> > &)" (?escape@curl_easy@curl@@QAEXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) [
E:\projects\cpp-utils\curl\build\curl.vcxproj]
curlcpp.lib(curl_easy.obj) : error LNK2019: unresolved external symbol __imp__curl_easy_unescape referenced in function
 "public: void __thiscall curl::curl_easy::unescape(class std::basic_string<char,struct std::char_traits<char>,class st
d::allocator<char> > &)" (?unescape@curl_easy@curl@@QAEXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@
@@Z) [E:\projects\cpp-utils\curl\build\curl.vcxproj]
curlcpp.lib(curl_easy.obj) : error LNK2019: unresolved external symbol __imp__curl_free referenced in function "public:
 void __thiscall <lambda_46233d9032feaceba785a4897dd7fab3>::operator()(char *)const " (??R<lambda_46233d9032feaceba785a
4897dd7fab3>@@QBEXPAD@Z) [E:\projects\cpp-utils\curl\build\curl.vcxproj]
curlcpp.lib(curl_easy.obj) : error LNK2019: unresolved external symbol __imp__curl_easy_pause referenced in function "p
ublic: void __thiscall curl::curl_easy::pause(int)" (?pause@curl_easy@curl@@QAEXH@Z) [E:\projects\cpp-utils\curl\build\
curl.vcxproj]
curlcpp.lib(curl_easy.obj) : error LNK2019: unresolved external symbol __imp__curl_easy_perform referenced in function
"public: void __thiscall curl::curl_easy::perform(void)" (?perform@curl_easy@curl@@QAEXXZ) [E:\projects\cpp-utils\curl\
build\curl.vcxproj]
curlcpp.lib(curl_easy.obj) : error LNK2019: unresolved external symbol __imp__curl_easy_cleanup referenced in function
"public: class curl::curl_easy & __thiscall curl::curl_easy::operator=(class curl::curl_easy const &)" (??4curl_easy@cu
rl@@QAEAAV01@ABV01@@Z) [E:\projects\cpp-utils\curl\build\curl.vcxproj]
curlcpp.lib(curl_easy.obj) : error LNK2019: unresolved external symbol __imp__curl_easy_duphandle referenced in functio
n "public: __thiscall curl::curl_easy::curl_easy(class curl::curl_easy const &)" (??0curl_easy@curl@@QAE@ABV01@@Z) [E:\
projects\cpp-utils\curl\build\curl.vcxproj]
curlcpp.lib(curl_easy.obj) : error LNK2019: unresolved external symbol __imp__curl_easy_reset referenced in function "p
ublic: void __thiscall curl::curl_easy::reset(void)" (?reset@curl_easy@curl@@QAEXXZ) [E:\projects\cpp-utils\curl\build\
curl.vcxproj]
E:\projects\cpp-utils\curl\build\Debug\curl.exe : fatal error LNK1120: 13 unresolved externals [E:\projects\cpp-utils\c
url\build\curl.vcxproj]
Done Building Project "E:\projects\cpp-utils\curl\build\curl.vcxproj" (default targets) -- FAILED.

Done Building Project "E:\projects\cpp-utils\curl\build\curl.vcxproj.metaproj" (default targets) -- FAILED.

Done Building Project "E:\projects\cpp-utils\curl\build\curl.sln" (default targets) -- FAILED.

Build FAILED.

"E:\projects\cpp-utils\curl\build\curl.sln" (default target) (1) ->
"E:\projects\cpp-utils\curl\build\curl.vcxproj.metaproj" (default target) (3) ->
"E:\projects\cpp-utils\curl\build\curl.vcxproj" (default target) (4) ->
(Link target) ->
  curl.obj : error LNK2019: unresolved external symbol __imp__curl_global_init referenced in function "public: __thisca
ll curl::curl_interface<enum CURLcode>::global_initialisator::global_initialisator(long)" (??0global_initialisator@?$cu
rl_interface@W4CURLcode@@@curl@@QAE@J@Z) [E:\projects\cpp-utils\curl\build\curl.vcxproj]
  curlcpp.lib(curl_easy.obj) : error LNK2001: unresolved external symbol __imp__curl_global_init [E:\projects\cpp-utils
\curl\build\curl.vcxproj]
  curl.obj : error LNK2019: unresolved external symbol __imp__curl_global_cleanup referenced in function "public: __thi
scall curl::curl_interface<enum CURLcode>::global_initialisator::~global_initialisator(void)" (??1global_initialisator@
?$curl_interface@W4CURLcode@@@curl@@QAE@XZ) [E:\projects\cpp-utils\curl\build\curl.vcxproj]
  curlcpp.lib(curl_easy.obj) : error LNK2001: unresolved external symbol __imp__curl_global_cleanup [E:\projects\cpp-ut
ils\curl\build\curl.vcxproj]
  curl.obj : error LNK2019: unresolved external symbol __imp__curl_easy_strerror referenced in function "public: __this
call curl::curl_easy_exception::curl_easy_exception(enum CURLcode const &,class std::basic_string<char,struct std::char
_traits<char>,class std::allocator<char> > const &)" (??0curl_easy_exception@curl@@QAE@ABW4CURLcode@@ABV?$basic_string@
DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) [E:\projects\cpp-utils\curl\build\curl.vcxproj]
  curlcpp.lib(curl_easy.obj) : error LNK2001: unresolved external symbol __imp__curl_easy_strerror [E:\projects\cpp-uti
ls\curl\build\curl.vcxproj]
  curl.obj : error LNK2019: unresolved external symbol __imp__curl_easy_init referenced in function "public: __thiscall
 curl::curl_easy::curl_easy<class std::basic_ostringstream<char,struct std::char_traits<char>,class std::allocator<char
> > >(class curl::curl_ios<class std::basic_ostringstream<char,struct std::char_traits<char>,class std::allocator<char>
 > > &)" (??$?0V?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@curl_easy@curl@@QAE@AAV?$curl_ios@
V?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@1@@Z) [E:\projects\cpp-utils\curl\build\curl.vcxp
roj]
  curlcpp.lib(curl_easy.obj) : error LNK2001: unresolved external symbol __imp__curl_easy_init [E:\projects\cpp-utils\c
url\build\curl.vcxproj]
  curl.obj : error LNK2019: unresolved external symbol __imp__curl_easy_setopt referenced in function "public: void __t
hiscall curl::curl_easy::add<10002>(char const *)" (??$add@$0CHBC@@curl_easy@curl@@QAEXPBD@Z) [E:\projects\cpp-utils\cu
rl\build\curl.vcxproj]
  curlcpp.lib(curl_easy.obj) : error LNK2001: unresolved external symbol __imp__curl_easy_setopt [E:\projects\cpp-utils
\curl\build\curl.vcxproj]
  curlcpp.lib(curl_easy.obj) : error LNK2019: unresolved external symbol __imp__curl_easy_escape referenced in function
 "public: void __thiscall curl::curl_easy::escape(class std::basic_string<char,struct std::char_traits<char>,class std:
:allocator<char> > &)" (?escape@curl_easy@curl@@QAEXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
 [E:\projects\cpp-utils\curl\build\curl.vcxproj]
  curlcpp.lib(curl_easy.obj) : error LNK2019: unresolved external symbol __imp__curl_easy_unescape referenced in functi
on "public: void __thiscall curl::curl_easy::unescape(class std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> > &)" (?unescape@curl_easy@curl@@QAEXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@st
d@@@Z) [E:\projects\cpp-utils\curl\build\curl.vcxproj]
  curlcpp.lib(curl_easy.obj) : error LNK2019: unresolved external symbol __imp__curl_free referenced in function "publi
c: void __thiscall <lambda_46233d9032feaceba785a4897dd7fab3>::operator()(char *)const " (??R<lambda_46233d9032feaceba78
5a4897dd7fab3>@@QBEXPAD@Z) [E:\projects\cpp-utils\curl\build\curl.vcxproj]
  curlcpp.lib(curl_easy.obj) : error LNK2019: unresolved external symbol __imp__curl_easy_pause referenced in function
"public: void __thiscall curl::curl_easy::pause(int)" (?pause@curl_easy@curl@@QAEXH@Z) [E:\projects\cpp-utils\curl\buil
d\curl.vcxproj]
  curlcpp.lib(curl_easy.obj) : error LNK2019: unresolved external symbol __imp__curl_easy_perform referenced in functio
n "public: void __thiscall curl::curl_easy::perform(void)" (?perform@curl_easy@curl@@QAEXXZ) [E:\projects\cpp-utils\cur
l\build\curl.vcxproj]
  curlcpp.lib(curl_easy.obj) : error LNK2019: unresolved external symbol __imp__curl_easy_cleanup referenced in functio
n "public: class curl::curl_easy & __thiscall curl::curl_easy::operator=(class curl::curl_easy const &)" (??4curl_easy@
curl@@QAEAAV01@ABV01@@Z) [E:\projects\cpp-utils\curl\build\curl.vcxproj]
  curlcpp.lib(curl_easy.obj) : error LNK2019: unresolved external symbol __imp__curl_easy_duphandle referenced in funct
ion "public: __thiscall curl::curl_easy::curl_easy(class curl::curl_easy const &)" (??0curl_easy@curl@@QAE@ABV01@@Z) [E
:\projects\cpp-utils\curl\build\curl.vcxproj]
  curlcpp.lib(curl_easy.obj) : error LNK2019: unresolved external symbol __imp__curl_easy_reset referenced in function
"public: void __thiscall curl::curl_easy::reset(void)" (?reset@curl_easy@curl@@QAEXXZ) [E:\projects\cpp-utils\curl\buil
d\curl.vcxproj]
  E:\projects\cpp-utils\curl\build\Debug\curl.exe : fatal error LNK1120: 13 unresolved externals [E:\projects\cpp-utils
\curl\build\curl.vcxproj]

    0 Warning(s)
    19 Error(s)

Time Elapsed 00:00:02.29

E:\projects\cpp-utils\curl\build>
kiwixz commented 5 years ago

You need to link to libcurl too.

JosephP91 commented 5 years ago

You need to link libcurl as @kiwixz reported.