Subject: | Compilation error on Win32 with ActivePerl 5.8.7 |
Distribution name and version: Net::SSH2 version 0.05.
Perl version:
This is perl, v5.8.7 built for MSWin32-x86-multi-thread
(with 7 registered patches, see perl -V for more detail)
Copyright 1987-2005, Larry Wall
Binary build 813 [148120] provided by ActiveState http://www.ActiveState.com
ActiveState is a division of Sophos.
Built Jun 6 2005 13:36:37
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using `man perl' or `perldoc perl'. If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
Operating system: Windows XP Professional SP2
Error:
SSH2.xs(1481) : error C2065: 'PATH_MAX' : undeclared identifier
Error occured when doing nmake.
Output:
Microsoft (R) Program Maintenance Utility Version 7.00.8882
Copyright (C) Microsoft Corp 1988-2000. All rights reserved.
cl -c -I. -I. -nologo -Gf -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DBUILT_BY_ACTIVESTATE -DNO_HASH_SEED -D
USE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -DNDEBUG -O1 -DVERSION=\"0.05\" -DXS_VERS
ION=\"0.05\" "-IC:\Perl\lib\CORE" SSH2.c
cl : Command line warning D9002 : ignoring unknown option '-Gf'
SSH2.c
SSH2.xs(261) : warning C4244: 'function' : conversion from 'libssh2_uint64_t' to 'UV', possible loss of data
SSH2.xs(623) : warning C4996: 'strerror' was declared deprecated
c:\Program Files\Microsoft Visual Studio 8\VC\include\string.h(125) : see declaration of 'strerror'
Message: 'This function or variable may be unsafe. Consider using strerror_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. Se
e online help for details.'
SSH2.xs(918) : warning C4244: 'function' : conversion from 'time_t' to 'UV', possible loss of data
SSH2.xs(919) : warning C4244: 'function' : conversion from 'time_t' to 'IV', possible loss of data
SSH2.xs(1212) : warning C4018: '<' : signed/unsigned mismatch
SSH2.xs(1481) : error C2065: 'PATH_MAX' : undeclared identifier
SSH2.xs(1722) : warning C4244: '=' : conversion from 'IV' to 'char', possible loss of data
NMAKE : fatal error U1077: 'cl' : return code '0x2'
Stop.
Possible fix:
If I add #define PATH_MAX 512 on row 30, just below #endif /* LIBSSH2_APINO >= 200507211326 */ in the SSH2.c file and on line 21 in the SSH2.xs file, this error goes away.
I don't know if doing this is a good thing (probably not) but the error goes away after that.