Subject: | Problems generating the Curl package on Windows XP |
Date: | Fri, 28 Oct 2011 22:58:34 +0200 |
To: | bug-WWW-Curl [...] rt.cpan.org |
From: | Jean-Michel Athane <jean-michel.athane [...] fr.ibm.com> |
Hello,
I would like to share with you some difficulties I have to build this
package on Windows XP 532 bits)
If you can tell me where I'm wrong it would be great !
I'l try to give you all the details.
I have Installed Perl (from
ActivePerl-5.14.2.1402-MSWin32-x86-295342.msi) under C:\Perl
I have installed Cygwin (Windows setup.exe) and Mingw
(mingw-get-inst-20110802.exe) under C:\Cygwin and C:\MinGW
I have downloaded curl-7.22.0-ssl-sspi-zlib-static-bin-w32 and installed
the contents under c:\Curl
I downloaded curl-7.22.0-devel-mingw32.zip and unzipped the contents
I downloaded and installed NMAKE from Microsoft
All binaries have been added to the system $PATH
Finally, I downloaded WWW-Curl-4.15.tar.gz and unzipped the contents
I followed the instructions in the README.Win32 file :
I changed the Makefile.PL according to the instructions :
my @includes =
qw('C:\\HOME\\DevPerl\\Downloads\\curl-7.22.0-devel-mingw32\\includes');
my ($cflags,$lflags, $ldflags) =
('-I"C:\\MinGW\\include"', '-L"C:\\MinGW\\lib"','-lcurl -lcurldll');
I executed perl Makefile.PL and got a message about unsupported lisf form
for open. After some Googling I found that someone suggested to modify one
line :
open(H_IN, "-|", "cpp", $curl_h) and $has_cpp++; was
changed to
open(H_IN, "-|", "cpp $curl_h") and $has_cpp++;
(note that apparently it requires no spaces in $curl_h)
I re-executed perl Makefile.PL, and got a Makefile
C:\HOME\DevPerl\Downloads\WWW-Curl-4.15.tar\WWW-Curl-4.15>perl Makefile.PL
C:\HOME\DevPerl\Downloads\curl-7.22.0-devel-mingw32\include
Set up gcc environment - 4.5.2
'curl-config' is not recognized as an internal or external command,
operable program or batch file.
'curl-config' is not recognized as an internal or external command,
operable program or batch file.
The version is
Found curl.h in
C:\HOME\DevPerl\Downloads\curl-7.22.0-devel-mingw32\include/curl
/curl.h
Building curlopt-constants.c for your libcurl version
Building Easy.pm constants for your libcurl version
Building Share.pm constants for your libcurl version
Checking if your kit is complete...
Looks good
Note (probably harmless): No library found for
Writing Makefile for WWW::Curl
Writing MYMETA.yml
I tried to run nmake, but it reported problems with missing curly braces.
C:\HOME\DevPerl\Downloads\WWW-Curl-4.15.tar\WWW-Curl-4.15>nmake
Microsoft (R) Program Maintenance Utility Version 1.50
Copyright (c) Microsoft Corp 1988-94. All rights reserved.
syntax error at -e line 1, near "'755')
"
Missing right curly or square bracket at -e line 1, at end of line
Execution of -e aborted due to compilation errors.
NMAKE : fatal error U1077: 'C:\WINDOWS\system32\cmd.exe' : return code
'0xff'
Stop.
After a global substitute of {{@ARGV} with {@ARGV} I finally got a
Makefile with no syntax error.
I restarted nmake, but the link stoped claiming surprisely (the
compilation of Curl.c seems to execute without error) that Curl.o is
missing.
C:\HOME\DevPerl\Downloads\WWW-Curl-4.15.tar\WWW-Curl-4.15>
nmake
Microsoft (R) Program Maintenance Utility Version 1.50
Copyright (c) Microsoft Corp 1988-94. All rights reserved.
cp lib/WWW/Curl/Share.pm blib\lib\WWW\Curl\Share.pm
cp lib/WWW/Curl/Form.pm blib\lib\WWW\Curl\Form.pm
cp lib/WWW/Curl.pm blib\lib\WWW\Curl.pm
cp lib/WWW/Curl/Easy.pm blib\lib\WWW\Curl\Easy.pm
cp lib/WWW/Curl/Multi.pm blib\lib\WWW\Curl\Multi.pm
C:\Perl\bin\perl.exe "-Iinc" C:\Perl\lib\ExtUtils\\xsubpp -typemap
C:\Perl\lib\ExtUtils\typemap -typemap typemap Curl.xs > Curl.xsc &&
C:\Perl\bin\perl.exe "-Iinc" -MExtUtils::Command -e "mv" -- Curl.xsc
Curl.c
C:/MinGW/bin/gcc.exe -c
-IC:\HOME\DevPerl\Downloads\curl-7.22.0-devel-mingw32\include -DNDEBUG
-DWIN32 -D_CONSOLE -DNO_STRICT -DPERL_TEXTMODE_SCRIPTS-DUSE_SITECUSTOMIZE
-DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO
-D_USE_32BIT_TIME_T -DHASATTRIBUTE -fno-strict-aliasing -mms-bitfields -O2
-DVERSION=\"4.15\" -DXS_VERSION=\"4.15\" "-IC:\Perl\lib\CORE" Curl.c
Running Mkbootstrap for WWW::Curl ()
C:\Perl\bin\perl.exe "-Iinc" -MExtUtils::Command -e "chmod" -- 644
Curl.bs
C:\Perl\bin\perl.exe "-Iinc" -MExtUtils::Mksymlists -e
"Mksymlists('NAME'=>\"WWW::Curl\", 'DLBASE' => 'Curl', 'DL_FUNCS' => { },
'FUNCLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => []);"
Set up gcc environment - 4.5.2
dlltool --def Curl.def --output-exp dll.exp
C:\MinGW\bin\g++.exe -o blib\arch\auto\WWW\Curl\Curl.dll
-Wl,--base-file -Wl,dll.base -mdll -L"C:\Perl\lib\CORE" Curl.o
C:\Perl\lib\CORE\perl514.lib C:\MinGW\lib\libkernel32.a
C:\MinGW\lib\libuser32.a C:\MinGW\lib\libgdi32.a
C:\MinGW\lib\libwinspool.a C:\MinGW\lib\libcomdlg32.a
C:\MinGW\lib\libadvapi32.a C:\MinGW\lib\libshell32.a
C:\MinGW\lib\libole32.a C:\MinGW\lib\liboleaut32.a
C:\MinGW\lib\libnetapi32.a C:\MinGW\lib\libuuid.a C:\MinGW\lib\libws2_32.a
C:\MinGW\lib\libmpr.a C:\MinGW\lib\libwinmm.a C:\MinGW\lib\libversion.a
C:\MinGW\lib\libodbc32.a C:\MinGW\lib\libodbccp32.a
C:\MinGW\lib\libcomctl32.a C:\MinGW\lib\libmsvcrt.a dll.exp
g++.exe: Curl.o: No such file or directory
NMAKE : fatal error U1077: 'C:\WINDOWS\system32\cmd.exe' : return code
'0x1'
Stop.
C:\HOME\DevPerl\Downloads\WWW-Curl-4.15.tar\WWW-Curl-4.15>
Effectively, the compilation did not generate any Curl.o
I tried to reexecute the compilation directly at the command line level ..
and got this :
C:\HOME\DevPerl\Downloads\WWW-Curl-4.15.tar\WWW-Curl-4.15>
C:/MinGW/bin/gcc.exe -c
-IC:\HOME\DevPerl\Downloads\curl-7.22.0-devel-mingw32\include -DNDEBUG
-DWIN32 -D_CONSOLE -DNO_STRICT -DPERL_TEXTMODE_SCRIPTS -DUSE_SITECUSTOMIZE
-DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO
-D_USE_32BIT_TIME_T -DHASATTRIBUTE -fno-strict-aliasing -mms-bitfields -O2
-DVERSION=\"4.15\" -DXS_VERSION=\"4.15\" "-IC:\Perl\lib\CORE" Curl.c
Curl.xs: In function 'XS_WWW__Curl__Easy_init':
C:\Perl\lib\CORE/XSUB.h:500:20: error: 'PerlSIO_fread' undeclared (first
use inthis function)
C:\Perl\lib\CORE/XSUB.h:500:20: note: each undeclared identifier is
reported only once for each function it appears in
C:\Perl\lib\CORE/XSUB.h:501:21: error: 'PerlSIO_fwrite' undeclared (first
use in this function)
Curl.xs: In function 'XS_WWW__Curl__Easy_duphandle':
C:\Perl\lib\CORE/XSUB.h:500:20: error: 'PerlSIO_fread' undeclared (first
use inthis function)
C:\Perl\lib\CORE/XSUB.h:501:21: error: 'PerlSIO_fwrite' undeclared (first
use in this function)
Curl.xs: In function 'XS_WWW__Curl__Easy_setopt':
C:\Perl\lib\CORE/XSUB.h:500:20: error: 'PerlSIO_fread' undeclared (first
use inthis function)
C:\Perl\lib\CORE/XSUB.h:501:21: error: 'PerlSIO_fwrite' undeclared (first
use in this function)
Curl.xs: In function 'XS_WWW__Curl__Multi_info_read':
C:\Perl\lib\CORE/XSUB.h:500:20: error: 'PerlSIO_fread' undeclared (first
use inthis function)
C:\Perl\lib\CORE/XSUB.h:501:21: error: 'PerlSIO_fwrite' undeclared (first
use in
this function)
At this point I don't know what to do ..
So, as a summary, I got
- feature unsupported (list form for open) under Windows in
Makefile.PL
- syntax errors in the generated Makefile
- a compilation which apparently doe not execute when launched by
nmake (a complete mystery for me ..)
- a compilation which fails when executed separately
Either the procedure does not work as described, or I did some mistakes,
or missed some prerequisites
Any idea ?
Did other users already got similar problems ?
Is there an easier way to get this Perl package installed under Windows ?
Thanks a lot ! (my Makefile is attached : )
Bien cordialement, Best Regards,
Jean-Michel Athané
IBM Certified IT Specialist
IBM Rational software, France
IBM, 1 rue de la Vielle Poste
34006 Montpellier, FR
Mobile: +33 (0) 6 20 82 07 36
Téléphone: +33 (0) 4 67 34 43 58
Sauf indication contraire ci-dessus:/ Unless stated otherwise above:
Compagnie IBM France
Siège Social : 17 avenue de l'Europe, 92275 Bois-Colombes Cedex
RCS Nanterre 552 118 465
Forme Sociale : S.A.S.
Capital Social : 639.291.962.10 ?
SIREN/SIRET : 552 118 465 03644 - Code NAF 6202A
Message body is not shown because it is too large.
Message body not shown because it is not plain text.