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 &)" ([EMAIL PROTECTED]@@[EMAIL PROTECTED]@@Z) 
referenced in function "public: class cURLpp::Easy & __thiscall 
cURLpp::Easy::operator=(class cURLpp::Easy &)" 
([EMAIL PROTECTED]@@[EMAIL PROTECTED]@@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> > *)" 
([EMAIL PROTECTED]@[EMAIL PROTECTED]@[EMAIL 
PROTECTED]@@@std@@$0CHBB@@cURLpp@@[EMAIL PROTECTED]@[EMAIL PROTECTED]@[EMAIL 
PROTECTED]@@@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 " 
([EMAIL PROTECTED]@[EMAIL PROTECTED]@[EMAIL 
PROTECTED]@@@std@@$0CHBB@@cURLpp@@[EMAIL PROTECTED]@@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
[email protected]
http://www.rrette.com/mailman/listinfo/curlpp

Reply via email to