cURL
Haxx ad
libcurl

curl's project page on SourceForge.net

Sponsors:
Haxx

cURL > Mailing List > Monthly Index > Single Mail

curlpp mailing list Archives

Re: [cURLpp] Compiling my own library with curlpp - error

From: Piotr Dobrogost <curlpp_at_2008.autoera.pl>
Date: Fri, 07 Nov 2008 14:31:39 +0100

George Elias wrote:
> Hi,
>
> I'm having some problems when I include curlpp in my own library. This
> is what I get:
>
>
> C:\Projetos\curlpp-0.7.2\curlpp\cURLpp.hpp(66) : error C2065:
> 'dllimport' : undeclared identifier
> C:\Projetos\curlpp-0.7.2\curlpp\cURLpp.hpp(66) : error C2182:
> '__cdeclspec' : illegal use of type 'void'
> C:\Projetos\curlpp-0.7.2\curlpp\cURLpp.hpp(66) : error C2146: syntax
> error : missing ';' before identifier 'initialize'
> C:\Projetos\curlpp-0.7.2\curlpp\cURLpp.hpp(66) : fatal error C1075: end
> of file found before the left brace '{' at
> 'C:\Projetos\curlpp-0.7.2\curlpp\cURLpp.hpp(40)' was matched
>
> I have no idea why this shows up. I built curlpp on Visual Studio 7 as a
> static library, it compiles fine, the problem is when I'm trying to
> compile my own library (the one I'm developing).
>
> Does anyone have any idea why this happens?? I've googled for a couple
> of days but no luck so far...

George

Line 66 of cURLpp.hpp (actually it's line 64) looks like this
void CURLPPAPI initialize(long flags = CURL_GLOBAL_ALL);

What's important for us in this line is macro CURLPPAPI defined in dllfct.h file in this way

/*
 * Decorate exportable functions for Win32 DLL linking.
 * This avoids using a .def file for building libcurl.dll.
 */
#if (defined(WIN32) || defined(_WIN32)) && !defined(CURLPP_STATICLIB)
#if defined(BUILDING_CURLPP)
#define CURLPPAPI __declspec(dllexport)
#else
#define CURLPPAPI __declspec(dllimport)
#endif
#else
#define CURLPPAPI
#endif

As you see this macro depens on four others; WIN32, _WIN32, CURLPP_STATICLIB and BUILDING_CURLPP. The first two (or one of them) is defined if you use VC. We must take care about the last two; CURLPP_STATICLIB and BUILDING_CURLPP.
If you are building some library tht uses the static version of cURLpp you have to define CURLPP_STATICLIB (you set this in Project/<Project name> properties/Configuration Properties/C/C++/Preprocessor/Preprocessor Definitions.
Also make sure you defined this macro befor building a static cURLpp library itself. For corectness you should also define BUILDING_CURLPP befor building cURLpp as well.

Good luck!

Regards
Piotr Dobrogost
_______________________________________________
cURLpp mailing list
cURLpp_at_rrette.com
http://www.rrette.com/mailman/listinfo/curlpp
Received on 2008-11-07

These mail archives are generated by hypermail.

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

File upload with ASP.NET