There's no VS2006 and given the paths shown, I take it you mean the
old Microsoft VC6 (Visual C/C++ 6) compiler, right?

Anyway, this is probably due to either 'extern' in the declaration in
the DECLARE_... macro, immediately followed by the instantiation in
the IMPLEMENT_... macro, OR it is due to a possibly missing const
somewhere. (For some unfathomable reason, I always forget whether that
error message is 'extern' or 'const' related.  :-S  )

Anyway, the code there (ec/ec_asn1.c) should read like this:

DECLARE_ASN1_FUNCTIONS_const(ECPKPARAMETERS);
DECLARE_ASN1_ENCODE_FUNCTIONS_const(ECPKPARAMETERS, ECPKPARAMETERS);
IMPLEMENT_ASN1_FUNCTIONS_const(ECPKPARAMETERS);


and then in asn1/asn1.h you should find this chunk:

#ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION

/* ASN1_ITEM pointer exported type */
typedef const ASN1_ITEM ASN1_ITEM_EXP;

/* Macro to obtain ASN1_ITEM pointer from exported type */
#define ASN1_ITEM_ptr(iptr) (iptr)

/* Macro to include ASN1_ITEM pointer from base type */
#define ASN1_ITEM_ref(iptr) (&(iptr##_it))

#define ASN1_ITEM_rptr(ref) (&(ref##_it))

#define DECLARE_ASN1_ITEM(name) \
        extern const ASN1_ITEM name##_it;

#else

/* Platforms that can't easily handle shared global variables are declared
 * as functions returning ASN1_ITEM pointers.
 */

/* ASN1_ITEM pointer exported type */
typedef const ASN1_ITEM * ASN1_ITEM_EXP(void);

/* Macro to obtain ASN1_ITEM pointer from exported type */
#define ASN1_ITEM_ptr(iptr) (iptr())

/* Macro to include ASN1_ITEM pointer from base type */
#define ASN1_ITEM_ref(iptr) (iptr##_it)

#define ASN1_ITEM_rptr(ref) (ref##_it())

#define DECLARE_ASN1_ITEM(name) \
        const ASN1_ITEM * name##_it(void)

#endif


Make sure all the 'const' and 'extern' bits in there match up.


Side Note: I compile on Win32 with OPENSSL_EXPORT_VAR_AS_FUNCTION
*defined*. This is not really necessary anymore, but we had to have
that bugger turned on back in the day when I still delivered using VC6
- something flaky to do with the linker IIRC.

Anyway, make sure those two chunks of code match up with your copy;
let me know if the problem persists.

Ger



On Tue, Nov 25, 2008 at 5:11 PM, chenshengda via RT <[EMAIL PROTECTED]> wrote:
> hi,
> i do these command using vs6++ and get an error.
>>F:\Program Files\Microsoft Visual Studio\VC98\Bin\vcvars32.bat
>>cd C:\devdiv\openssl-0.9.8i
>>ms\do_ms
>>nmake -f ms\ntdll.mak
>
>
>        cl /Fotmp32dll\ec_asn1.obj  -Iinc32 -Itmp32dll /MD /Ox /O2 /Ob2 /W3 
> /WX /Gs0 /GF /Gy /nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_ME
> _ENDIAN -DDSO_WIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE 
> -DOPENSSL_USE_APPLINK -I. /Fdout32dll -DOPENSSL_NO_CAMELLIA -DOPENSSL
> ED -DOPENSSL_NO_RC5 -DOPENSSL_NO_MDC2 -DOPENSSL_NO_TLSEXT -DOPENSSL_NO_CMS 
> -DOPENSSL_NO_CAPIENG -DOPENSSL_NO_KRB5 -DOPENSSL_NO_DYNAMIC_ENGINE -D
> L  -DOPENSSL_BUILD_SHLIBCRYPTO -c .\crypto\ec\ec_asn1.c
> ec_asn1.c
> .\crypto\ec\ec_asn1.c(261) : error C2370: 'ECPKPARAMETERS_it' : redefinition; 
> different storage class
>        .\crypto\ec\ec_asn1.c(259) : see declaration of 'ECPKPARAMETERS_it'
> .\crypto\ec\ec_asn1.c(262) : error C2370: 'ECPKPARAMETERS_it' : redefinition; 
> different storage class
>        .\crypto\ec\ec_asn1.c(259) : see declaration of 'ECPKPARAMETERS_it'
> .\crypto\ec\ec_asn1.c(272) : error C2370: 'EC_PRIVATEKEY_it' : redefinition; 
> different storage class
>        .\crypto\ec\ec_asn1.c(270) : see declaration of 'EC_PRIVATEKEY_it'
> .\crypto\ec\ec_asn1.c(273) : error C2370: 'EC_PRIVATEKEY_it' : redefinition; 
> different storage class
>        .\crypto\ec\ec_asn1.c(270) : see declaration of 'EC_PRIVATEKEY_it'
> NMAKE : fatal error U1077: 'cl' : return code '0x2'
> Stop.
>
>
> and i find the subject of the debug.
> but it still happend the error.
> how can i resolve....
>
> gamma.
> 2008-11-25
>
>
>
> chenshengda
>
>
> hi,
> i do these command using vs6++ and get an error.
>>F:\Program Files\Microsoft Visual Studio\VC98\Bin\vcvars32.bat
>>cd C:\devdiv\openssl-0.9.8i
>>ms\do_ms
>>nmake -f ms\ntdll.mak
>
>         cl /Fotmp32dll\ec_asn1.obj  -Iinc32 -Itmp32dll /MD /Ox /O2 /Ob2 /W3 
> /WX /Gs0 /GF /Gy /nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_ME
> _ENDIAN -DDSO_WIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE 
> -DOPENSSL_USE_APPLINK -I. /Fdout32dll -DOPENSSL_NO_CAMELLIA -DOPENSSL
> ED -DOPENSSL_NO_RC5 -DOPENSSL_NO_MDC2 -DOPENSSL_NO_TLSEXT -DOPENSSL_NO_CMS 
> -DOPENSSL_NO_CAPIENG -DOPENSSL_NO_KRB5 -DOPENSSL_NO_DYNAMIC_ENGINE -D
> L  -DOPENSSL_BUILD_SHLIBCRYPTO -c .\crypto\ec\ec_asn1.c
> ec_asn1.c
> .\crypto\ec\ec_asn1.c(261) : error C2370: 'ECPKPARAMETERS_it' : redefinition; 
> different storage class
>         .\crypto\ec\ec_asn1.c(259) : see declaration of 'ECPKPARAMETERS_it'
> .\crypto\ec\ec_asn1.c(262) : error C2370: 'ECPKPARAMETERS_it' : redefinition; 
> different storage class
>         .\crypto\ec\ec_asn1.c(259) : see declaration of 'ECPKPARAMETERS_it'
> .\crypto\ec\ec_asn1.c(272) : error C2370: 'EC_PRIVATEKEY_it' : redefinition; 
> different storage class
>         .\crypto\ec\ec_asn1.c(270) : see declaration of 'EC_PRIVATEKEY_it'
> .\crypto\ec\ec_asn1.c(273) : error C2370: 'EC_PRIVATEKEY_it' : redefinition; 
> different storage class
>         .\crypto\ec\ec_asn1.c(270) : see declaration of 'EC_PRIVATEKEY_it'
> NMAKE : fatal error U1077: 'cl' : return code '0x2'
> Stop.
>
>
> and i find the subject of the debug.
> but it still happend the error.
> how can i resolve....
>
> gamma.
> 2008-11-25
> ________________________________
> chenshengda
>



-- 
Met vriendelijke groeten / Best regards,

Ger Hobbelt

--------------------------------------------------
web:    http://www.hobbelt.com/
        http://www.hebbut.net/
mail:   [EMAIL PROTECTED]
mobile: +31-6-11 120 978
--------------------------------------------------
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to