> >         cl ... -c .\crypto\asn1\n_pkey.c
> > .\crypto\asn1\n_pkey.c(96) : error C2370: 'NETSCAPE_ENCRYPTED_PKEY_it' :
> > redefinition; different storage class
> >         .\crypto\asn1\n_pkey.c(93) : see declaration of
> > 'NETSCAPE_ENCRYPTED_PKEY_it'
> 
> Strange, I checked VC++ 6.0 SP3 and had no problems. What version of
> VC++ are you using?

First of all I want to make it clear that I do *not* have environment
for VC-WIN32 build. All I say here is based on experinence not related
to OpenSSL.

How does one tell VC++SP level? I couldn't find a way. It's probably
more appropriate to ask for version number returned by cl. Mine says
12.00.8804...

In either case I believe it's OPENSSL_EXTERN which is "responsible" for
this. On Windows OPENSLL_EXTERN is[?]/can be defined as "extern
_declspec(dllimport)" and the problem must be that n_pkey.c refers to
same variable as both local and OPENSSL_EXTERN. The catch is that
_decspec(dllimport) is [and has to be] treated differently. Most notably
"_declspec(dllimport) int i; int foo(){return i;}" effectively compiles
as "int *_i; int foo() {return *_i;}." As you can see generated machine
code has to be substantially different from one generated for plain "int
i; int foo(){return i;}" and this is what the compiler must be
complaining about. At the very least if I try to compile "int
i;_declspec(dllimport) int i;" I get the very same error code, C2370.

A.

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to