Subject: [Imap-uw] trouble building IMAP/C-CLIENT for Win32

From: Mike Trank <[email-masked]>
Date: Wed, 20 Jul 2005 09:24:11 -0600 (CST)

I've built IMAP and C-client *lots* of times on Unix/Linux and never had
any trouble. But trying to build on Win2k is driving me nuts. I have
installed the "Microsoft Platform SDK" and  chose
"Complete" installation. I can see that the platform SDK's BIN directory
is in the PATH and also the include
directory is in the INCLUDE envvar, but I always get the compile errors
shown below.

Can you help? Thanks.

Path=C:\PROGRA~1\MICROS~3\Common\msdev98\BIN;C:\PROGRA~1\MICROS~3\VC98\BIN;C:\PR
OGRA~1\MICROS~3\Common\TOOLS\WINNT;C:\PROGRA~1\MICROS~3\Common\TOOLS;C:\PROGRA~1
\MICROS~3\Common\msdev98\BIN;C:\PROGRA~1\MICROS~3\VC98\BIN;C:\PROGRA~1\MICROS~3\
Common\TOOLS\WINNT;C:\PROGRA~1\MICROS~3\Common\TOOLS;C:\WINNT\system32;C:\WINNT;
C:\WINNT\System32\Wbem;C:\PROGRA~1\CA\SHARED~1\SCANEN~1;C:\PROGRA~1\CA\ETRUST~1;
C:\Program Files\Common Files\Roxio Shared\DLLShared;D:\Program
Files\Microsoft Platform SDK\Bin\.;D:\Program Files\Microsoft Platform 
SDK\Bin\WinNT\.;C:\gnude\
bin;D:\Program Files\Microsoft Platform SDK\Bin\.;D:\Program 
Files\Microsoft Platform SDK\Bin\WinNT\.

INCLUDE=C:\PROGRA~1\MICROS~3\VC98\ATL\INCLUDE;C:\PROGRA~1\MICROS~3\VC98\INCLUDE;
C:\PROGRA~1\MICROS~3\VC98\MFC\INCLUDE;C:\PROGRA~1\MICROS~3\VC98\ATL\INCLUDE;C:\P
ROGRA~1\MICROS~3\VC98\INCLUDE;C:\PROGRA~1\MICROS~3\VC98\MFC\INCLUDE;D:\Program
Files\Microsoft Platform SDK\Include\.

	cl -c /MT /W3 /Ox /DWIN32 -nologo /I..  os_w2k.c
os_w2k.c
kerb_w2k.c(241) : error C2065: 'MICROSOFT_KERBEROS_NAME_A' : undeclared identifier
kerb_w2k.c(241) : warning C4047: 'function' : 'char *' differs in levels of indirection from 'int '
kerb_w2k.c(241) : warning C4024: 'AcquireCredentialsHandleA' : different types for formal and actual parameter 2
kerb_w2k.c(376) : error C2065: 'SEC_E_CERT_EXPIRED' : undeclared identifier
kerb_w2k.c(376) : error C2051: case expression not constant
kerb_w2k.c(506) : error C2065: 'SECBUFFER_PADDING' : undeclared identifier
kerb_w2k.c(561) : error C2065: 'SECBUFFER_STREAM' : undeclared identifier
auth_gss.c(236) : error C2051: case expression not constant
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(144) : error C2061: syntax error : identifier 'ALG_ID'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(145) : error C2059: syntax error : '}'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(163) : error C2061: syntax error : identifier 'PCERT_NAME_BLOB'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(165) : error C2059: syntax error : '}'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(171) : error C2061: syntax error : identifier 'ALG_ID'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(173) : error C2061: syntax error : identifier 'aiHash'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(173) : error C2059: syntax error : ';'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(175) : error C2061: syntax error : identifier 'aiExch'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(175) : error C2059: syntax error : ';'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(177) : error C2059: syntax error : '}'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(230) : error C2061: syntax error : identifier 'PCCERT_CONTEXT'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(231) : error C2061: syntax error : identifier 'hRootStore'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(231) : error C2059: syntax error : ';'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(237) : error C2143: syntax error : missing '{' before '*'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(245) : error C2059: syntax error : '}'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(258) : error C2061: syntax error : identifier 'HCRYPTPROV'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(260) : error C2059: syntax error : '}'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(556) : error C2061: syntax error : identifier 'HCRYPTPROV'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(558) : error C2059: syntax error : '}'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(590) : error C2061: syntax error : identifier 'HCRYPTPROV'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(592) : error C2059: syntax error : '}'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(608) : error C2061: syntax error : identifier 'ALG_ID'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(614) : error C2059: syntax error : '}'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(642) : error C2143: syntax error : missing ')' before '*'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(642) : error C2081: 'PX509Certificate' : name in formal parameter list illegal
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(642) : error C2143: syntax error : missing '{' before '*'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(643) : error C2059: syntax error : ')'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(649) : error C2146: syntax error : missing ')' before identifier 'pCertificate'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(649) : error C2061: syntax error : identifier 'pCertificate'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(649) : error C2059: syntax error : ';'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(650) : error C2059: syntax error : ')'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(673) : error C2143: syntax error : missing ')' before '*'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(673) : error C2081: 'PX509Certificate' : name in formal parameter list illegal
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(673) : error C2143: syntax error : missing '{' before '*'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(674) : error C2059: syntax error : ')'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(682) : error C2146: syntax error : missing ')' before identifier 'pCertificate'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(682) : error C2061: syntax error : identifier 'pCertificate'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(682) : error C2059: syntax error : ';'
D:\Program Files\Microsoft Platform SDK\Include\.\schannel.h(683) : error C2059: syntax error : ')'
ssl_w2k.c(138) : error C2065: 'SCHANNEL_CRED' : undeclared identifier
ssl_w2k.c(138) : error C2146: syntax error : missing ';' before identifier 'tlscred'
ssl_w2k.c(138) : error C2065: 'tlscred' : undeclared identifier
ssl_w2k.c(139) : error C2065: 'CERT_CONTEXT' : undeclared identifier
ssl_w2k.c(139) : error C2065: 'cert' : undeclared identifier
ssl_w2k.c(139) : warning C4552: '*' : operator has no effect; expected operator with side-effect
ssl_w2k.c(140) : error C2065: 'CERT_CHAIN_PARA' : undeclared identifier
ssl_w2k.c(140) : error C2146: syntax error : missing ';' before identifier 'chparam'
ssl_w2k.c(140) : error C2065: 'chparam' : undeclared identifier
ssl_w2k.c(141) : error C2065: 'CERT_CHAIN_CONTEXT' : undeclared identifier
ssl_w2k.c(141) : error C2065: 'chain' : undeclared identifier
ssl_w2k.c(141) : warning C4552: '*' : operator has no effect; expected operator with side-effect
ssl_w2k.c(142) : error C2065: 'SSL_EXTRA_CERT_CHAIN_POLICY_PARA' : undeclared identifier
ssl_w2k.c(142) : error C2146: syntax error : missing ';' before identifier 'policy'
ssl_w2k.c(142) : error C2065: 'policy' : undeclared identifier
ssl_w2k.c(143) : error C2065: 'CERT_CHAIN_POLICY_PARA' : undeclared identifier
ssl_w2k.c(143) : error C2146: syntax error : missing ';' before identifier 'polparam'
ssl_w2k.c(143) : error C2065: 'polparam' : undeclared identifier
ssl_w2k.c(144) : error C2065: 'CERT_CHAIN_POLICY_STATUS' : undeclared identifier
ssl_w2k.c(144) : error C2146: syntax error : missing ';' before identifier 'status'
ssl_w2k.c(144) : error C2065: 'status' : undeclared identifier
ssl_w2k.c(145) : error C2143: syntax error : missing ';' before 'type'
ssl_w2k.c(146) : error C2143: syntax error : missing ';' before 'type'
ssl_w2k.c(147) : error C2275: 'ULONG' : illegal use of this type as an expression
        C:\PROGRA~1\MICROS~3\VC98\INCLUDE\windef.h(43) : see declaration of 'ULONG'
ssl_w2k.c(147) : error C2146: syntax error : missing ';' before identifier 'req'
ssl_w2k.c(147) : error C2065: 'req' : undeclared identifier
ssl_w2k.c(150) : error C2065: 'ISC_REQ_MANUAL_CRED_VALIDATION' : undeclared identifier
ssl_w2k.c(151) : error C2275: 'LPSTR' : illegal use of this type as an expression
        C:\PROGRA~1\MICROS~3\VC98\INCLUDE\winnt.h(166) : see declaration of 'LPSTR'
ssl_w2k.c(151) : error C2146: syntax error : missing ';' before identifier 'usage'
ssl_w2k.c(151) : error C2065: 'usage' : undeclared identifier
ssl_w2k.c(151) : error C2059: syntax error : ']'
ssl_w2k.c(156) : error C2275: 'PWSTR' : illegal use of this type as an expression
        C:\PROGRA~1\MICROS~3\VC98\INCLUDE\winnt.h(154) : see declaration of 'PWSTR'
ssl_w2k.c(156) : error C2146: syntax error : missing ';' before identifier 'whost'
ssl_w2k.c(156) : error C2065: 'whost' : undeclared identifier
ssl_w2k.c(157) : error C2143: syntax error : missing ';' before 'type'
ssl_w2k.c(158) : error C2143: syntax error : missing ';' before 'type'
ssl_w2k.c(159) : error C2275: 'sslcertificatequery_t' : illegal use of this type as an expression
        mail.h(1262) : see declaration of 'sslcertificatequery_t'
ssl_w2k.c(159) : error C2146: syntax error : missing ';' before identifier 'scq'
ssl_w2k.c(159) : error C2065: 'scq' : undeclared identifier
ssl_w2k.c(160) : warning C4047: '=' : 'int ' differs in levels of indirection from 'long (__cdecl *)(char *,char *,char *)'
ssl_w2k.c(161) : error C2275: 'sslfailure_t' : illegal use of this type as an expression
        mail.h(1263) : see declaration of 'sslfailure_t'
ssl_w2k.c(161) : error C2146: syntax error : missing ';' before identifier 'sf'
ssl_w2k.c(161) : error C2065: 'sf' : undeclared identifier
ssl_w2k.c(161) : warning C4047: '=' : 'int ' differs in levels of indirection from 'void (__cdecl *)(char *,char *,unsigned long )'
ssl_w2k.c(162) : error C2275: 'SSLSTREAM' : illegal use of this type as an expression
        ssl_w2k.c(44) : see declaration of 'SSLSTREAM'
ssl_w2k.c(162) : error C2065: 'stream' : undeclared identifier
ssl_w2k.c(164) : error C2223: left of '->tcpstream' must point to struct/union
ssl_w2k.c(167) : error C2224: left of '.dwVersion' must have struct/union type
ssl_w2k.c(168) : error C2224: left of '.grbitEnabledProtocols' must have struct/union type
ssl_w2k.c(173) : error C2223: left of '->cred' must point to struct/union
ssl_w2k.c(173) : warning C4133: 'function' : incompatible types - from 'union _LARGE_INTEGER *' to 'struct _SecHandle *'
ssl_w2k.c(173) : error C2198: 'AcquireCredentialsHandleA' : too few actual parameters
ssl_w2k.c(174) : error C2065: 'reason' : undeclared identifier
ssl_w2k.c(174) : warning C4047: '=' : 'int ' differs in levels of indirection from 'char [34]'
ssl_w2k.c(177) : error C2065: 'size' : undeclared identifier
ssl_w2k.c(177) : error C2065: 'buf' : undeclared identifier
ssl_w2k.c(177) : warning C4047: '=' : 'void *' differs in levels of indirection from 'int '
ssl_w2k.c(188) : error C2223: left of '->cred' must point to struct/union
ssl_w2k.c(188) : error C2223: left of '->context' must point to struct/union
ssl_w2k.c(188) : warning C4133: 'function' : incompatible types - from 'char *' to 'struct _SecHandle *'
ssl_w2k.c(188) : warning C4047: 'function' : 'struct _SecHandle *' differs in levels of indirection from 'int '
ssl_w2k.c(188) : warning C4024: 'InitializeSecurityContextA' : different types for formal and actual parameter 2
ssl_w2k.c(189) : warning C4047: 'function' : 'unsigned long ' differs in levels of indirection from 'struct _SecBufferDesc *'
ssl_w2k.c(189) : warning C4024: 'InitializeSecurityContextA' : different types for formal and actual parameter 5
ssl_w2k.c(189) : error C2223: left of '->context' must point to struct/union
ssl_w2k.c(189) : warning C4047: 'function' : 'unsigned long ' differs in levels of indirection from 'unsigned long *'
ssl_w2k.c(189) : warning C4024: 'InitializeSecurityContextA' : different types for formal and actual parameter 8
ssl_w2k.c(189) : warning C4133: 'function' : incompatible types - from 'union _LARGE_INTEGER *' to 'struct _SecHandle *'
ssl_w2k.c(189) : error C2198: 'InitializeSecurityContextA' : too few actual parameters
ssl_w2k.c(192) : error C2223: left of '->tcpstream' must point to struct/union
ssl_w2k.c(192) : warning C4047: 'function' : 'char *' differs in levels of indirection from 'unsigned long '
ssl_w2k.c(192) : warning C4024: 'tcp_sout' : different types for formal and actual parameter 2
ssl_w2k.c(192) : error C2198: 'tcp_sout' : too few actual parameters
ssl_w2k.c(192) : fatal error C1003: error count exceeds 100; stopping compilation

_______________________________________________
Imap-uw mailing list
[email-masked]
https://mailman1.u.washington.edu/mailman/listinfo/imap-uw

---

From: Mark Crispin <[email-masked]>
Date: Wed, 20 Jul 2005 11:05:03 -0800

> directory is in the INCLUDE envvar, but I always get the compile errors

The compile errors that you report indicate that you do NOT have the 
complete Microsoft Platform SDK installed; you are missing all the 
definitions for Microsoft's encryption and certificate management support.

The INCLUDE definition doesn't seem to have the SDK directories, which 
suggest to me that you don't have it set up.  I think that you may have 
run this in an ordinary command window, instead of one of the special 
command windows for the Platform SDK.  In the Start -> Programs menu under 
Microsoft Platform SDK, you should find some programs that put you in a 
command prompt with the SDK set up.

Or, you can install the newer Visual Studio .NET 2003 instead of the VC98 
that you're running now and not worry about it.

-- Mark --

http://staff.washington.edu/mrc
Science does not emerge from voting, party politics, or public debate.
Si vis pacem, para bellum.
_______________________________________________
Imap-uw mailing list
[email-masked]
https://mailman1.u.washington.edu/mailman/listinfo/imap-uw

---

From: Mike Schmidt <[email-masked]>
Date: Thu, 21 Jul 2005 15:21:09 -0400

Hi,

Just to throw in ny two bits: I have been compiling and running c-client 
under win32 for some time now. I can confirm that with the Platform SDK 
and visual studion 2003, c-client compiles and functions very well. I 
run it from a visual studio project tailored to my usage requirements 
(i.e. the dirvers I need) and it works very well.

Mike

Mark Crispin wrote:

> suggest to me that you don't have it set up.  I think that you may 
> have run this in an ordinary command window, instead of one of the 
> special command windows for the Platform SDK.  In the Start -> 
> Programs menu under Microsoft Platform SDK, you should find some 
> programs that put you in a command prompt with the SDK set up.
>
> Or, you can install the newer Visual Studio .NET 2003 instead of the 
> VC98 that you're running now and not worry about it.
>
> -- Mark --
>

---

From: Michael Trank <[email-masked]>
Date: Thu, 21 Jul 2005 13:59:46 -0400 (EDT)

Thanks, Mike. After I corrected the environment variables, everything got
built.