[xmlsec] Compiling with MSVC 10: thousands of errors

Aleksey Sanin aleksey at aleksey.com
Tue Jul 12 08:19:57 PDT 2011


If you look at the code, you will see that it complains about BIO which 
is openssl struct.
You will need to figure out why it is not available in the openssl 
header files or why
openssl header files are not included.

Aleksey


On 7/12/11 12:07 AM, Josef Kokeš wrote:
> Hi!
>
> I could use some help with compiling XmlSec (the latest version 
> 1.2.18) on Windows. My original attempts were done using MingW/Msys 
> and these failed even before I got to compiling XmlSec (I just 
> couldn't get some prerequisites to compile).
>
> With MSVC 10.0, I eventually managed to compile all prerequisites, and 
> now I am trying to compile XmlSec itself. The problem is, I keep 
> getting thousands of errors in header files:
>
>     cl.exe /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D 
> "_REENTRANT"  /W1 /MD /I.. /I..\include /I.\include /D 
> PACKAGE=\"xmlsec\" /D "HAVE_STDIO_H" /D "HAVE_STDLIB_H" /D 
> "HAVE_STRING_H" /D "HAVE_CTYPE_H" /D "HAVE_MALLOC_H" /D 
> "HAVE_MEMORY_H" /D "_DEBUG" /Od /Z7 /DXMLSEC_MSCRYPTO_NT4=1 /D 
> "XMLSEC_DL_WIN32" /D "XMLSEC_OPENSSL_098" /D "XMLSEC_CRYPTO_OPENSSL" 
> /D "XMLSEC_CRYPTO=\"openssl\"" /Folibxmlsec_openssl.int\ /c 
> ..\src\openssl\app.c ..\src\openssl\bn.c ..\src\openssl\ciphers.c 
> ..\src\openssl\crypto.c ..\src\openssl\digests.c ..\src\openssl\evp.c 
> ..\src\openssl\hmac.c ..\src\openssl\kt_rsa.c ..\src\openssl\kw_aes.c 
> ..\src\openssl\kw_des.c ..\src\openssl\signatures.c 
> ..\src\openssl\symkeys.c ..\src\openssl\x509.c ..\src\openssl\x509vfy.c
> app.c
> C:\xml\xmlsec1-1.2.18\include\xmlsec/openssl/app.h(56) : error C2143: 
> syntax error : missing ')' before '*'
> C:\xml\xmlsec1-1.2.18\include\xmlsec/openssl/app.h(56) : error C2081: 
> 'BIO' : name in formal parameter list illegal
> C:\xml\xmlsec1-1.2.18\include\xmlsec/openssl/app.h(56) : error C2143: 
> syntax error : missing '{' before '*'
> C:\xml\xmlsec1-1.2.18\include\xmlsec/openssl/app.h(57) : error C2370: 
> 'xmlSecKeyDataFormat' : redefinition; different storage class
>         C:\xml\xmlsec1-1.2.18\include\xmlsec/keysdata.h(236) : see 
> declaration of 'xmlSecKeyDataFormat'
> C:\xml\xmlsec1-1.2.18\include\xmlsec/openssl/app.h(57) : error C2146: 
> syntax error : missing ';' before identifier 'format'
> C:\xml\xmlsec1-1.2.18\include\xmlsec/openssl/app.h(58) : error C2059: 
> syntax error : 'type'
> C:\xml\xmlsec1-1.2.18\include\xmlsec/openssl/app.h(58) : error C2059: 
> syntax error : ')'
> C:\xml\xmlsec1-1.2.18\include\xmlsec/openssl/app.h(84) : error C2143: 
> syntax error : missing ')' before '*'
> C:\xml\xmlsec1-1.2.18\include\xmlsec/openssl/app.h(84) : error C2143: 
> syntax error : missing '{' before '*'
> C:\xml\xmlsec1-1.2.18\include\xmlsec/openssl/app.h(85) : error C2370: 
> 'xmlSecKeyDataFormat' : redefinition; different storage class
>         C:\xml\xmlsec1-1.2.18\include\xmlsec/keysdata.h(236) : see 
> declaration of 'xmlSecKeyDataFormat'
> C:\xml\xmlsec1-1.2.18\include\xmlsec/openssl/app.h(85) : error C2146: 
> syntax error : missing ';' before identifier 'format'
> C:\xml\xmlsec1-1.2.18\include\xmlsec/openssl/app.h(86) : error C2059: 
> syntax error : 'type'
> C:\xml\xmlsec1-1.2.18\include\xmlsec/openssl/app.h(88) : error C2059: 
> syntax error : ')'
>
> And so on and so on. After 100 errors the compiler stops and tries 
> another file, which fails with similar errors (on different lines, 
> though). Searching the archives, I found a 2005 message which seemed 
> somewhat relevant 
> (http://www.mail-archive.com/xmlsec@aleksey.com/msg02730.html) and the 
> answer suggested that the user was using a wrong OpenSSL version. That 
> is not the case with my setup, as far as I can tell.
>
> I am using a clean Windows XP SP3 install with a clean Microsoft 
> Visual Studio 10.0 Express on it. I compiled the following packages 
> (in listed order):
>
> - Zlib 1.2.5 - I used the supplied win32\Makefile.msc
> - Iconv 1.13 - this one gave me headaches until I learned that I can 
> build it using MingW and then copy the .a files to .lib files for MSVC 
> to use. Maybe this is the cause of my problems? But what else am I 
> supposed to do, considering that Iconv doesn't support MSVC anymore?
> - LibXml2 2.7.8 - with configure.js options compiler=msvc zlib=yes 
> debug=yes
> - LibXslt 1.1.26 - with configure.js options compiler=msvc zlib=yes 
> debug=yes
> - OpenSSL 0.9.8r - with configure option VC-WIN32, build batch 
> ms\do_masm and makefile ms\ntdll.mak
> - XmlSec 1.2.18 - with configure.js options crypto=openssl unicode=no 
> debug=yes. I also tried crypto=openssl=098, under the influence of the 
> 2005 message
>
> What can I possibly do to fix this problem? The files with errors 
> listed seem OK to me, but I am not a C programmer so maybe I am 
> missing something obvious.
>
> Thanks,
>
> Pepak
> _______________________________________________
> xmlsec mailing list
> xmlsec at aleksey.com
> http://www.aleksey.com/mailman/listinfo/xmlsec


More information about the xmlsec mailing list