Thanks to your instructions, I managed to successfully build NetSSH2 for 5.16 and also for 5.14, each in 32 Bit.
I stick to the 32 bit version, because I had problems with method scp_get in the past returning only an empty file, even using the pre-compiled binaries 0.53.
What I did in short:
- Downloaded Strawberry-Perl Portable 32bit 5.14
- Extracted to c:\strawberry, opened cmd.exe and called portableshell.bat
- Downloaded the alpha version of Net::SSH2 (0.54_02), extracted somewhere else and cd'd into that dir
- Set lib/include paths for gcc, as recommended by you
set LIBRARY_PATH=c:\strawberry\c\lib
set C_INCLUDE_PATH=c:\strawberry\c\include
- c:\perl\bin\perl.exe Makefile.PL (this is my ActiveState installation)
- dmake (in order to build it)
I did not test the libraries yet, but I'd expect that it'll be ok...
But I did not manage to build it for perl versions above perl 5.16:
I looks to me that there are two different versions, one with 64 bit integers and one without. No matter which version I try, every time I get pages of this kind of error:
SSH2.c:1103:14: warning: cast to pointer from integer of different
size [-Wint-to-pointer-cast]
ss = (SSH2 *)SvIV((SV*)SvRV(ST(0)));
^
Sometimes I get even this error:
SSH2.o:SSH2.c:(.text+0x14f8d): undefined reference to `CRYPTO_set_dyn
lock_destroy_callback'
C:/STRAWB~1/c/bin/../lib/gcc/i686-w64-mingw32/4.8.3/../../../../i686-
w64-mingw32/bin/ld.exe: SSH2.o: bad reloc address 0x1768 in section
`.rdata'
C:/STRAWB~1/c/bin/../lib/gcc/i686-w64-mingw32/4.8.3/../../../../i686-
w64-mingw32/bin/ld.exe: final link failed: Invalid operation
collect2.exe: error: ld returned 1 exit status
dmake: Error code 129, while making 'blib\arch\auto\Net\SSH2\SSH2.dl
l'
Before your advice, I did not try to use a strawberry perl because I thought that strawberry is compiled with gcc, whereas ActivePerl used Microsoft compilers. But this has turned out to be WRONG! Both use gcc.
I will continue to test the perls 5.18 and above and also 64 bit versions. Right now, I am able to test the new version of Net::SSH2.
Thanks for your wisdom!
Bogi
|