JosephP91 / curlcpp

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

Can't link on windows #134

Closed themachho closed 2 years ago

themachho commented 3 years ago

Hello. Im trying to build a project using curlcpp on windows (with makefile). I dont have the same issue on linux with -lcurl, only windows.

I have libcurl_a.lib (static 7.79) and the src/inc files of curlcpp that i want to compile (without using curlcpp.lib) and my file structure is this:

libs
├── 32
│   └── libcurl_a.lib
├── 64
│   └── libcurl_a.lib
├── curl
│   ├── curl.h
│   ├── curlver.h
│   ├── easy.h
│   ├── mprintf.h
│   ├── multi.h
│   ├── options.h
│   ├── stdcheaders.h
│   ├── system.h
│   ├── typecheck-gcc.h
│   └── urlapi.h
├── cookie.cpp
├── cookie_date.cpp
├── cookie_date.h
├── cookie_datetime.cpp
├── cookie_datetime.h
├── cookie.h
├── cookie_time.cpp
├── cookie_time.h
├── curl_config.h
├── curl_cookie.cpp
├── curl_cookie.h
├── curl_easy.cpp
├── curl_easy.h
├── curl_easy_info.h
├── curl_exception.cpp
├── curl_exception.h
├── curl_form.cpp
├── curl_form.h
├── curl_global.cpp
├── curl_global.h
├── curl_header.cpp
├── curl_header.h
├── curl_info.cpp
├── curl_info.h
├── curl_interface.h
├── curl_ios.h
├── curl_multi.cpp
├── curl_multi.h
├── curl_option.h
├── curl_pair.h
├── curl_receiver.h
├── curl_sender.h
├── curl_share.cpp
├── curl_share.h
└── curl_utility.h

On my makefile i included this lines

DIRS += $(CURLCPP_DIR) $(CURLCPP_DIR)/curl (for includes for compiler) LIB_CURL = $(CURLCPP_DIR)/32 (or 64) LDFLAGS += ../$(LIB_CURL)/libcurl_a.lib Crypt32.lib Wldap32.lib Normaliz.lib ws2_32.lib winmm.lib (for linking)

The makefile calls vcvarsall for compile/link. While compile doesnt have issues, i got the following error at the linking stage:

vcvarsall.bat x86 & link -OUT:..\target\32\mydll.dll ..\int\mydll\32\dev\mydll.o \int\mydll\32\dev\libs\curlcpp\cookie.o ..\int\mydll\32\dev\libs\curlcpp\cookie_date.o ..\int\mydll\32\dev\libs\curlcpp\cookie_datetime.o ..\int\mydll\32\dev\libs\curlcpp\cookie_time.o ..\int\mydll\32\dev\libs\curlcpp\curl_cookie.o ..\int\mydll\32\dev\libs\curlcpp\curl_easy.o ..\int\mydll\32\dev\libs\curlcpp\curl_exception.o ..\int\mydll\32\dev\libs\curlcpp\curl_form.o ..\int\mydll\32\dev\libs\curlcpp\curl_global.o ..\int\mydll\32\dev\libs\curlcpp\curl_header.o ..\int\mydll\32\dev\libs\curlcpp\curl_info.o ..\int\mydll\32\dev\libs\curlcpp\curl_multi.o ..\int\mydll\32\dev\libs\curlcpp\curl_share.o -MACHINE:X86 -DLL ../dev/libs/curlcpp/32/libcurl_a.lib Crypt32.lib Wldap32.lib Normaliz.lib ws2_32.lib winmm.lib libcmt.lib Shlwapi.lib Setupapi.lib advapi32.lib ole32.lib user32.lib ws2_32.lib -DEF:..\dev\mydll.def -DCURL_INCLUDE_DIR=dev/libs/curlcpp/curl ../dev/libs/curlcpp/32/libcurl_a.lib Crypt32.lib Wldap32.lib Normaliz.lib ws2_32.lib winmm.lib

curl_multi.o : error LNK2001: símbolo externo _curl_easy_strerror@4 sin resolver
curl_share.o : error LNK2001: símbolo externo _curl_easy_strerror@4 sin resolver
comm_client.o : error LNK2001: símbolo externo _curl_easy_strerror@4 sin resolver
curl_cookie.o : error LNK2001: símbolo externo _curl_easy_strerror@4 sin resolver
curl_easy.o : error LNK2001: símbolo externo _curl_easy_strerror@4 sin resolver
curl_global.o : error LNK2001: símbolo externo _curl_easy_strerror@4 sin resolver
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_easy_strerror
curl_cookie.o : error LNK2019: símbolo externo _curl_slist_free_all@4 sin resolver al que se hace referencia en la función "public: __thiscall curl::curl_easy_info<struct curl_slist *>::~curl_easy_info<struct curl_slist *>(void)" (??1?$curl_easy_info@PAUcurl_slist@@@curl@@QAE@XZ)
curl_header.o : error LNK2001: símbolo externo _curl_slist_free_all@4 sin resolver
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_slist_free_all
curl_easy.o : error LNK2019: símbolo externo _curl_easy_escape@12 sin resolver al que se hace referencia en la función "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)
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_easy_escape
curl_easy.o : error LNK2019: símbolo externo _curl_easy_unescape@16 sin resolver al que se hace referencia en la función "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@@std@@@Z)
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_easy_unescape
curl_easy.o : error LNK2019: símbolo externo _curl_free@4 sin resolver al que se hace referencia en la función "private: static __stdcall <lambda_51d2c2f2d2b174c4d61844a9860c136f>::<lambda_invoker_stdcall>(char *)" (?<lambda_invoker_stdcall>@<lambda_51d2c2f2d2b174c4d61844a9860c136f>@@CG@PAD@Z)
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_free
curl_easy.o : error LNK2019: símbolo externo _curl_global_init@4 sin resolver al que se hace referencia en la función "public: __thiscall curl::curl_interface<enum CURLcode>::global_initializer::global_initializer(long)" (??0global_initializer@?$curl_interface@W4CURLcode@@@curl@@QAE@J@Z)
curl_global.o : error LNK2001: símbolo externo _curl_global_init@4 sin resolver
curl_multi.o : error LNK2001: símbolo externo _curl_global_init@4 sin resolver
curl_share.o : error LNK2001: símbolo externo _curl_global_init@4 sin resolver
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_global_init
curl_easy.o : error LNK2019: símbolo externo _curl_global_cleanup@0 sin resolver al que se hace referencia en la función "public: __thiscall curl::curl_interface<enum CURLcode>::global_initializer::~global_initializer(void)" (??1global_initializer@?$curl_interface@W4CURLcode@@@curl@@QAE@XZ)
curl_global.o : error LNK2001: símbolo externo _curl_global_cleanup@0 sin resolver
curl_multi.o : error LNK2001: símbolo externo _curl_global_cleanup@0 sin resolver
curl_share.o : error LNK2001: símbolo externo _curl_global_cleanup@0 sin resolver
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_global_cleanup
curl_easy.o : error LNK2019: símbolo externo _curl_easy_pause@8 sin resolver al que se hace referencia en la función "public: void __thiscall curl::curl_easy::pause(int)" (?pause@curl_easy@curl@@QAEXH@Z)
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_easy_pause
curl_easy.o : error LNK2019: símbolo externo _curl_easy_init@0 sin resolver al que se hace referencia en la función "public: __thiscall curl::curl_easy::curl_easy(long)" (??0curl_easy@curl@@QAE@J@Z)
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_easy_init
curl_easy.o : error LNK2019: símbolo externo _curl_easy_perform@4 sin resolver al que se hace referencia en la función "public: void __thiscall curl::curl_easy::perform(void)" (?perform@curl_easy@curl@@QAEXXZ)
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_easy_perform
curl_easy.o : error LNK2019: símbolo externo _curl_easy_cleanup@4 sin resolver al que se hace referencia en la función "public: __thiscall curl::curl_easy::curl_easy(class curl::curl_easy const &)" (??0curl_easy@curl@@QAE@ABV01@@Z)
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_easy_cleanup
curl_easy.o : error LNK2019: símbolo externo _curl_easy_duphandle@4 sin resolver al que se hace referencia en la función "public: __thiscall curl::curl_easy::curl_easy(class curl::curl_easy const &)" (??0curl_easy@curl@@QAE@ABV01@@Z)
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_easy_duphandle
curl_easy.o : error LNK2019: símbolo externo _curl_easy_reset@4 sin resolver al que se hace referencia en la función "public: void __thiscall curl::curl_easy::reset(void)" (?reset@curl_easy@curl@@QAEXXZ)
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_easy_reset
curl_form.o : error LNK2019: símbolo externo _curl_formfree@4 sin resolver al que se hace referencia en la función "public: __thiscall curl::curl_form::~curl_form(void)" (??1curl_form@curl@@QAE@XZ)
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_formfree
curl_header.o : error LNK2019: símbolo externo _curl_slist_append@8 sin resolver al que se hace referencia en la función "public: class curl::curl_header & __thiscall curl::curl_header::operator=(class curl::curl_header const &)" (??4curl_header@curl@@QAEAAV01@ABV01@@Z)
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_slist_append
curl_info.o : error LNK2019: símbolo externo _curl_version_info@4 sin resolver al que se hace referencia en la función "public: __thiscall curl::curl_info::curl_info(enum CURLversion)" (??0curl_info@curl@@QAE@W4CURLversion@@@Z)
curl_multi.o : error LNK2019: símbolo externo _curl_multi_init@0 sin resolver al que se hace referencia en la función "public: __thiscall curl::curl_multi::curl_multi(long)" (??0curl_multi@curl@@QAE@J@Z)
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_multi_init
curl_multi.o : error LNK2019: símbolo externo _curl_multi_add_handle@8 sin resolver al que se hace referencia en la función "public: void __thiscall curl::curl_multi::add(class curl::curl_easy const &)" (?add@curl_multi@curl@@QAEXABVcurl_easy@2@@Z)
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_multi_add_handle
curl_multi.o : error LNK2019: símbolo externo _curl_multi_remove_handle@8 sin resolver al que se hace referencia en la función "public: void __thiscall curl::curl_multi::remove(class curl::curl_easy const &)" (?remove@curl_multi@curl@@QAEXABVcurl_easy@2@@Z)
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_multi_remove_handle
curl_multi.o : error LNK2019: símbolo externo _curl_multi_fdset@20 sin resolver al que se hace referencia en la función "public: void __thiscall curl::curl_multi::set_descriptors(struct fd_set *,struct fd_set *,struct fd_set *,int *)" (?set_descriptors@curl_multi@curl@@QAEXPAUfd_set@@00PAH@Z)
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_multi_fdset
curl_multi.o : error LNK2019: símbolo externo _curl_multi_wait@20 sin resolver al que se hace referencia en la función "public: void __thiscall curl::curl_multi::wait(struct curl_waitfd * const,unsigned int,int,int *)" (?wait@curl_multi@curl@@QAEXQAUcurl_waitfd@@IHPAH@Z)
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_multi_wait
curl_multi.o : error LNK2019: símbolo externo _curl_multi_perform@8 sin resolver al que se hace referencia en la función "public: bool __thiscall curl::curl_multi::perform(void)" (?perform@curl_multi@curl@@QAE_NXZ)
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_multi_perform
curl_multi.o : error LNK2019: símbolo externo _curl_multi_cleanup@4 sin resolver al que se hace referencia en la función "public: class std::unique_ptr<void,struct curl::curl_multi::multi_deleter> & __thiscall std::unique_ptr<void,struct curl::curl_multi::multi_deleter>::operator=<struct curl::curl_multi::multi_deleter,0>(class std::unique_ptr<void,struct curl::curl_multi::multi_deleter> &&)" (??$?4Umulti_deleter@curl_multi@curl@@$0A@@?$unique_ptr@XUmulti_deleter@curl_multi@curl@@@std@@QAEAAV01@$$QAV01@@Z)
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_multi_cleanup
curl_multi.o : error LNK2019: símbolo externo _curl_multi_info_read@8 sin resolver al que se hace referencia en la función "public: class std::unique_ptr<class curl::curl_multi::curl_message,struct std::default_delete<class curl::curl_multi::curl_message> > __thiscall curl::curl_multi::get_info(class curl::curl_easy const &)" (?get_info@curl_multi@curl@@QAE?AV?$unique_ptr@Vcurl_message@curl_multi@curl@@U?$default_delete@Vcurl_message@curl_multi@curl@@@std@@@std@@ABVcurl_easy@2@@Z)
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_multi_info_read
curl_multi.o : error LNK2019: símbolo externo _curl_multi_strerror@4 sin resolver al que se hace referencia en la función "public: __thiscall curl::curl_multi_exception::curl_multi_exception(enum CURLMcode,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0curl_multi_exception@curl@@QAE@W4CURLMcode@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_multi_strerror
curl_multi.o : error LNK2019: símbolo externo _curl_multi_socket_action@16 sin resolver al que se hace referencia en la función "public: bool __thiscall curl::curl_multi::socket_action(unsigned int,int)" (?socket_action@curl_multi@curl@@QAE_NIH@Z)
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_multi_socket_action
curl_multi.o : error LNK2019: símbolo externo _curl_multi_timeout@8 sin resolver al que se hace referencia en la función "public: void __thiscall curl::curl_multi::timeout(long *)" (?timeout@curl_multi@curl@@QAEXPAJ@Z)
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_multi_timeout
curl_multi.o : error LNK2019: símbolo externo _curl_multi_assign@12 sin resolver al que se hace referencia en la función "public: void __thiscall curl::curl_multi::assign(unsigned int,void *)" (?assign@curl_multi@curl@@QAEXIPAX@Z)
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_multi_assign
curl_share.o : error LNK2019: símbolo externo _curl_share_init@0 sin resolver al que se hace referencia en la función "protected: void __thiscall curl::curl_share::initialize_curl_share(void)" (?initialize_curl_share@curl_share@curl@@IAEXXZ)
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_share_init
curl_share.o : error LNK2019: símbolo externo _curl_share_cleanup@4 sin resolver al que se hace referencia en la función "public: virtual __thiscall curl::curl_share::~curl_share(void)" (??1curl_share@curl@@UAE@XZ)
  Sugerencia sobre los símbolos definidos que podrían coincidir:
    _curl_share_cleanup
..\target\32\mydll.dll : fatal error LNK1120: 30 externos sin resolver
make: *** [../target/32/mydll.dll] Error 1120

I know that linking gets the libcurl lib because if i change the name/misspell it gives lib not found. Sorry i cant provide the full makefile and spanish language on the errors but are external/unresolved symbol.

Any ideas? I know that building curlcpp.lib is another option but im having issues with visual studio solution and x86 building conflicts.

themachho commented 3 years ago

Managed to compile and link an example for x64 (sill cant compile curlcpp.lib for x86) and it works. The only issue now is the LNK4217 warning

PS C:\Users\user\Documents\curlcpp_test> vcvarsall.bat x64 '&' cl /EHsc /DCURL_STATICLIB .\easy_info.cpp -I.\libs\curlcpp\ /link .\libs\curlcpp\64\libcurl_a.lib advapi32.lib crypt32.lib normaliz.lib wldap32.lib ws2_32.lib /nodefaultlib:libcmt.lib .\libs\curlcpp\64\curlcpp.lib
** Copyright (c) 2021 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'
Compilador de optimización de C/C++ de Microsoft (R) versión 19.29.30133 para x64
(C) Microsoft Corporation. Todos los derechos reservados.

easy_info.cpp
Microsoft (R) Incremental Linker Version 14.29.30133.0
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:easy_info.exe
.\libs\curlcpp\64\libcurl_a.lib
advapi32.lib
crypt32.lib
normaliz.lib
wldap32.lib
ws2_32.lib
/nodefaultlib:libcmt.lib
.\libs\curlcpp\64\curlcpp.lib
easy_info.obj
LINK : warning LNK4217: "curl_easy_escape" importa el símbolo "libcurl_a.lib(escape.obj)" definido en "curlcpp.lib(curl_easy.obj)" en la función ""public: void __cdecl curl::curl_easy::escape(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &)" (?escape@curl_easy@curl@@QEAAXAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)"
LINK : warning LNK4217: "curl_easy_unescape" importa el símbolo "libcurl_a.lib(escape.obj)" definido en "curlcpp.lib(curl_easy.obj)" en la función ""public: void __cdecl curl::curl_easy::unescape(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &)" (?unescape@curl_easy@curl@@QEAAXAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)"
LINK : warning LNK4217: "curl_free" importa el símbolo "libcurl_a.lib(escape.obj)" definido en "curlcpp.lib(curl_easy.obj)" en la función ""private: static __cdecl <lambda_a5490d485619adb319274a36824fe087>::<lambda_invoker_cdecl>(char *)" (?<lambda_invoker_cdecl>@<lambda_a5490d485619adb319274a36824fe087>@@CA@PEAD@Z)"
LINK : warning LNK4217: "curl_global_init" importa el símbolo "libcurl_a.lib(easy.obj)" definido en "curlcpp.lib(curl_easy.obj)" en la función ""public: __cdecl curl::curl_interface<enum CURLcode>::global_initializer::global_initializer(long)" (??0global_initializer@?$curl_interface@W4CURLcode@@@curl@@QEAA@J@Z)"
LINK : warning LNK4217: "curl_global_cleanup" importa el símbolo "libcurl_a.lib(easy.obj)" definido en "curlcpp.lib(curl_easy.obj)" en la función ""public: __cdecl curl::curl_interface<enum CURLcode>::global_initializer::~global_initializer(void)" (??1global_initializer@?$curl_interface@W4CURLcode@@@curl@@QEAA@XZ)"
LINK : warning LNK4217: "curl_easy_strerror" importa el símbolo "libcurl_a.lib(strerror.obj)" definido en "curlcpp.lib(curl_easy.obj)" en la función ""public: __cdecl 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@@QEAA@AEBW4CURLcode@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)"
LINK : warning LNK4217: "curl_easy_pause" importa el símbolo "libcurl_a.lib(easy.obj)" definido en "curlcpp.lib(curl_easy.obj)" en la función ""public: void __cdecl curl::curl_easy::pause(int)" (?pause@curl_easy@curl@@QEAAXH@Z)"
LINK : warning LNK4217: "curl_easy_init" importa el símbolo "libcurl_a.lib(easy.obj)" definido en "curlcpp.lib(curl_easy.obj)" en la función ""public: __cdecl curl::curl_easy::curl_easy(long)" (??0curl_easy@curl@@QEAA@J@Z)"
LINK : warning LNK4217: "curl_easy_setopt" importa el símbolo "libcurl_a.lib(setopt.obj)" definido en "curlcpp.lib(curl_easy.obj)" en la función ""public: void __cdecl curl::curl_easy::add<10001>(void *)" (??$add@$0CHBB@@curl_easy@curl@@QEAAXPEAX@Z)"
LINK : warning LNK4217: "curl_easy_perform" importa el símbolo "libcurl_a.lib(easy.obj)" definido en "curlcpp.lib(curl_easy.obj)" en la función ""public: void __cdecl curl::curl_easy::perform(void)" (?perform@curl_easy@curl@@QEAAXXZ)"
LINK : warning LNK4217: "curl_easy_cleanup" importa el símbolo "libcurl_a.lib(easy.obj)" definido en "curlcpp.lib(curl_easy.obj)" en la función ""public: __cdecl curl::curl_easy::curl_easy(class curl::curl_easy const &)" (??0curl_easy@curl@@QEAA@AEBV01@@Z)"
LINK : warning LNK4217: "curl_easy_duphandle" importa el símbolo "libcurl_a.lib(easy.obj)" definido en "curlcpp.lib(curl_easy.obj)" en la función ""public: __cdecl curl::curl_easy::curl_easy(class curl::curl_easy const &)" (??0curl_easy@curl@@QEAA@AEBV01@@Z)"
LINK : warning LNK4217: "curl_easy_reset" importa el símbolo "libcurl_a.lib(easy.obj)" definido en "curlcpp.lib(curl_easy.obj)" en la función ""public: void __cdecl curl::curl_easy::reset(void)" (?reset@curl_easy@curl@@QEAAXXZ)"

PS C:\Users\user\Documents\curlcpp_test> .\easy_info.exe
text/html; charset=ISO-8859-1
themachho commented 3 years ago

Update: I added CURL_STATICLIB on visual studio Preprocessor before compile curlcpp.lib to solve the issues later since the example worked but no when i tryied to use in another program. x64 works great with no errors (except the linker warning) but x86 have this issue:

client.o : error LNK2019: símbolo externo __imp__curl_global_init@4 sin resolver al que se hace referencia en la función "public: __thiscall curl::curl_interface<enum CURLcode>::global_initializer::global_initializer(long)" (??0global_initializer@?$curl_interface@W4CURLcode@@@curl@@QAE@J@Z)
client.o : error LNK2019: símbolo externo __imp__curl_global_cleanup@0 sin resolver al que se hace referencia en la función "public: __thiscall curl::curl_interface<enum CURLcode>::global_initializer::~global_initializer(void)" (??1global_initializer@?$curl_interface@W4CURLcode@@@curl@@QAE@XZ)
client.o : error LNK2019: símbolo externo __imp__curl_easy_strerror@4 sin resolver al que se hace referencia en la función "public: __thiscall 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)
client.o : error LNK2019: símbolo externo __imp__curl_easy_init@0 sin resolver al que se hace referencia en la función "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)
..\output\mydll.dll : fatal error LNK1120: 4 externos sin resolver
make: *** [../output/mydll.dll] Error 1120

Both following the same compile process. Im trying to find if its not a libcurl related issue but is strange that i have no errors on x64.

JosephP91 commented 2 years ago

This seems to be a problem related to a missing curl library on your system. I've added the build for dynamic library, try again.