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
