cURL
Haxx ad
libcurl

curl's project page on SourceForge.net

Sponsors:
Haxx

cURL > Mailing List > Monthly Index > Single Mail

curlpp mailing list Archives

[cURLpp] Build problems on MSVS 2005

From: Andrei <rokna13sv_at_mail.ru>
Date: Tue, 23 Sep 2008 20:11:29 +0200

I experienced several problems compiling the library (0.7.2) under
Windows (MSVS 2005).

1. VC refuses to compile line 74 in CurlHandle.hpp

CURL * CURLPPAPI getHandle() const;

Error 4 error C2059: syntax error : '__declspec(dllexport)'
e:\downloads\curlpp-0.7.2\curlpp-0.7.2\curlpp\CurlHandle.hpp 74

Resolution:
The reason is that __declspec(dllexport) (which is CURLPPAPI) must
appear to the left of the export symbol declaration. So changing the
line with

CURLPPAPI CURL * getHandle() const;

produces no compilation errors. This should be applied to other exported
functions.

2. Compilation error in curlpp/types.hpp: "curlpp/global.h" not such
file or directory

Resolution:
You should either use
#include "global.h"
or add
".\" to the additional include directories

3. In CurlHandle.cpp (in several places):

   runtimeAssert( "Error when trying to curl_easy_init() a handle", mCurl );

Warning 3 warning C4800: 'CURL *' : forcing value to bool 'true'
or 'false' (performance warning)
e:\Downloads\curlpp-0.7.2\curlpp-0.7.2\curlpp\CurlHandle.cpp 77

Resolution:
Just rewrite the code to
runtimeAssert( "...", !!mCurl );
to make void* => bool conversion safe

4.Linking problems:

Easy.obj : error LNK2019: unresolved external symbol "public: class
cURLpp::OptionList & __thiscall cURLpp::OptionList::operator=(class
cURLpp::OptionList const &)" (??4OptionList_at_cURLpp@@QAEAAV01_at_ABV01@@Z)
referenced in function "public: class cURLpp::Easy & __thiscall
cURLpp::Easy::operator=(class cURLpp::Easy &)"
(??4Easy_at_cURLpp@@QAEAAV01_at_AAV01@@Z)
1>Easy.obj : error LNK2019: unresolved external symbol "public: static
void __cdecl cURLpp::OptionSetter<class std::basic_ostream<char,struct
std::char_traits<char> > *,10001>::setOpt(class cURLpp::CurlHandle
*,class std::basic_ostream<char,struct std::char_traits<char> > *)"
(?setOpt@?$OptionSetter_at_PAV?$basic_ostream_at_DU?$char_traits_at_D@std@@@std@@$0CHBB@@cURLpp@@SAXPAVCurlHandle_at_2@PAV?$basic_ostream_at_DU?$char_traits_at_D@std@@@std@@@Z)
referenced in function "private: virtual void __thiscall
cURLpp::OptionTrait<class std::basic_ostream<char,struct
std::char_traits<char> > *,10001>::updateHandleToMe(class
cURLpp::CurlHandle *)const "
(?updateHandleToMe@?$OptionTrait_at_PAV?$basic_ostream_at_DU?$char_traits_at_D@std@@@std@@$0CHBB@@cURLpp@@EBEXPAVCurlHandle_at_2@@Z)
1

Resolution:
Because it looks that the given symbols are not actually used, simply
commenting out these function declarations resolves the problem.

PS: There is no problem from my side to provide formal patches etc to
the source tree, just let me know.

Regards,
Andrei Korostelev
_______________________________________________
cURLpp mailing list
cURLpp_at_rrette.com
http://www.rrette.com/mailman/listinfo/curlpp
Received on 2008-09-23

These mail archives are generated by hypermail.

donate! Page updated November 12, 2010.
web site info

File upload with ASP.NET