On Wed, 16 Nov 2005, Mark Nettleingham wrote:
> 
>       I am trying to build the latest Win32 module (release 0.26) when I
> attempt a make (nmake) either manually or using CPANPLUS I get the
> following error.
> 
> Microsoft (R) Program Maintenance Utility Version 7.10.3077
> Copyright (C) Microsoft Corporation.  All rights reserved.
> 
>          cl -c    -nologo -Gf -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE
> -DNO_STRICT -DHAVE_DES_FCRYPT -DBUILT_BY_ACTIVESTATE -DNO_HASH_SEED
> -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS
> -DUSE_PERLIO - DPERL_MSVCRT_READFIX-MD -Zi -DNDEBUG -O1
> -DVERSION=\"0.10\"  -DXS_VERSION=\"0.10\"  "-IC:\Perl\lib\CORE"   File.c
> 
> File.c
> c1 : warning C4349: /Gf is deprecated and will not be supported in future
> versio ns of Visual C++; remove /Gf or use /GF instead
> C:\Perl\lib\CORE\perl.h(382) : fatal error C1083: Cannot open include
> file: 'sys/types.h': No such file or directory
> NMAKE : fatal error U1077: 'cl' : return code '0x2'
> Stop.

That is weird.  From your nmake version I'm guessing that you are using VS2003.
The sys/types.h include file should be installed in:

  C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\sys\types.h

Did you run vsvars32.bat to set up INCLUDE and LIB paths correctly?

In general it is better to compile modules for ActivePerl with VC++ 6.0, which
uses the MSVCRT.DLL runtime library and doesn't introduce a dependency on 
MSVCR70.DLL
or MSVCR71.DLL or ...

Starting with ActivePerl 5.8.7.815 you can also use MinGW to compile additional
modules that will use MSVCRT.DLL for the C runtime.  ActivePerl will 
automatically
detect and use MinGW and dmake if you have them installed but don't have VC++ on
your PATH.

> I'm a touch lost here as I'm not really sure where to turn next. This is
> on a Windows 2003 Enterprise Server with ActiveState perl version 5.8.7.

ActivePerl 5.8.7.815 (released yesterday) already includes libwin32 0.26.

Even if you compile and install libwin32 itself, the Win32 module will
not be used by Perl because it gets installed in the site/lib directory,
which is being shadowed by the core Perl version of the Win32 module.
All the other libwin32 modules will be updated though.

(Just for reference, this is different for cygwin Perl, which does not
yet come with a core version of Win32 installed in the lib tree. But
this is going to change in the future.)

Cheers,
-Jan


Reply via email to