J
jl_post
Hi,
Last month I was tinkering around with the Inline::C module. I
even posted a small program to comp.lang.perl.misc with the subject
"Curious benchmark results with Inline::C". (If you want to see it,
you can find it at:
http://groups.google.com/group/comp.lang.perl.misc/msg/920c641d68dd4910?dmode=source
)
Today I've gone back to that script and modified it a little. The
problem is, any change I make to the C code makes the code no longer
compile. If I leave the code untouched, then the script runs just
fine, but as soon as I make a small change (such as insert a space
somewhere), or even copy the script to a separate directory and run it
there, I get compiler errors.
For example, if I copy the "extra_function_c.pl" (found in the post
I referenced above) to my D:\tmp directory, cd to that directory, and
type:
perl extra_function_c.pl
I see the following output:
=== BEGIN OUTPUT ===
C:\strawberry\perl\bin\perl.exe C:\strawberry\perl\lib\ExtUtils
\xsubpp -typemap C:\strawberry\perl\lib\ExtUtils\typemap
extra_function_c_pl_850b.xs > extra_function_c_pl_850b.xsc && C:
\strawberry\perl\bin\perl.exe -MExtUtils::Command -e mv
extra_function_c_pl_850b.xsc extra_function_c_pl_850b.c
gcc -c -ID:/tmp -s -O2 -DWIN32 -DHAVE_DES_FCRYPT -
DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -
DPERL_MSVCRT_READFIX -s -O2 -DVERSION=\"0.00\" -DXS_VERSION=
\"0.00\" "-IC:\strawberry\perl\lib\CORE" extra_function_c_pl_850b.c
Running Mkbootstrap for extra_function_c_pl_850b ()
C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e chmod 644
extra_function_c_pl_850b.bs
C:\strawberry\perl\bin\perl.exe -MExtUtils::Mksymlists \
-e "Mksymlists('NAME'=>\"extra_function_c_pl_850b\", 'DLBASE' =>
'extra_function_c_pl_850b', 'DL_FUNCS' => { }, 'FUNCLIST' => [],
'IMPORTS' => { }, 'DL_VARS' => []);"
dlltool --def extra_function_c_pl_850b.def --output-exp dll.exp
'dlltool' is not recognized as an internal or external command,
operable program or batch file.
dmake: Error code 129, while making 'blib\arch\auto
\extra_function_c_pl_850b\extra_function_c_pl_850b.dll'
A problem was encountered while attempting to compile and install your
Inline
C code. The command that failed was:
dmake > out.make 2>&1
The build directory was:
D:\tmp\_Inline\build\extra_function_c_pl_850b
To debug the problem, cd to the build directory, and inspect the
output files.
at extra_function_c.pl line 4
BEGIN failed--compilation aborted at extra_function_c.pl line 74.
=== END OUTPUT ===
It seems as though the problem starts around this line:
'dlltool' is not recognized as an internal or external command,
operable program or batch file.
I checked the C:\strawberry directory tree and no file named
dlltool.* appears to exist. Just in case it mysteriously disappeared
from my platform, I checked someone else's Strawberry Perl
installation, and he doesn't have it either.
Incidentally, I cd'ed to D:\tmp\_Inline\build
\extra_function_c_pl_850b and ran "dmake", and this is what I saw:
dlltool --def extra_function_c_pl_850b.def --output-exp dll.exp
'dlltool' is not recognized as an internal or external command,
operable program or batch file.
dmake: Error code 129, while making 'blib\arch\auto
\extra_function_c_pl_850b\extra_function_c_pl_850b.dll'
So it does seem likely that it's failing because "dlltool" can't be
found.
I'm puzzled here. Why did this program work just fine last month,
and today it's trying to run "dlltool", a program that seems to have
never existed in my Strawberry Perl installation in the first place?
Does anyone know how to get Inline::C working for me again? (I
reinstalled it with "cpan -fi Inline::C" but it didn't make any
difference.)
Thanks.
-- Jean-Luc
Last month I was tinkering around with the Inline::C module. I
even posted a small program to comp.lang.perl.misc with the subject
"Curious benchmark results with Inline::C". (If you want to see it,
you can find it at:
http://groups.google.com/group/comp.lang.perl.misc/msg/920c641d68dd4910?dmode=source
)
Today I've gone back to that script and modified it a little. The
problem is, any change I make to the C code makes the code no longer
compile. If I leave the code untouched, then the script runs just
fine, but as soon as I make a small change (such as insert a space
somewhere), or even copy the script to a separate directory and run it
there, I get compiler errors.
For example, if I copy the "extra_function_c.pl" (found in the post
I referenced above) to my D:\tmp directory, cd to that directory, and
type:
perl extra_function_c.pl
I see the following output:
=== BEGIN OUTPUT ===
C:\strawberry\perl\bin\perl.exe C:\strawberry\perl\lib\ExtUtils
\xsubpp -typemap C:\strawberry\perl\lib\ExtUtils\typemap
extra_function_c_pl_850b.xs > extra_function_c_pl_850b.xsc && C:
\strawberry\perl\bin\perl.exe -MExtUtils::Command -e mv
extra_function_c_pl_850b.xsc extra_function_c_pl_850b.c
gcc -c -ID:/tmp -s -O2 -DWIN32 -DHAVE_DES_FCRYPT -
DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -
DPERL_MSVCRT_READFIX -s -O2 -DVERSION=\"0.00\" -DXS_VERSION=
\"0.00\" "-IC:\strawberry\perl\lib\CORE" extra_function_c_pl_850b.c
Running Mkbootstrap for extra_function_c_pl_850b ()
C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e chmod 644
extra_function_c_pl_850b.bs
C:\strawberry\perl\bin\perl.exe -MExtUtils::Mksymlists \
-e "Mksymlists('NAME'=>\"extra_function_c_pl_850b\", 'DLBASE' =>
'extra_function_c_pl_850b', 'DL_FUNCS' => { }, 'FUNCLIST' => [],
'IMPORTS' => { }, 'DL_VARS' => []);"
dlltool --def extra_function_c_pl_850b.def --output-exp dll.exp
'dlltool' is not recognized as an internal or external command,
operable program or batch file.
dmake: Error code 129, while making 'blib\arch\auto
\extra_function_c_pl_850b\extra_function_c_pl_850b.dll'
A problem was encountered while attempting to compile and install your
Inline
C code. The command that failed was:
dmake > out.make 2>&1
The build directory was:
D:\tmp\_Inline\build\extra_function_c_pl_850b
To debug the problem, cd to the build directory, and inspect the
output files.
at extra_function_c.pl line 4
BEGIN failed--compilation aborted at extra_function_c.pl line 74.
=== END OUTPUT ===
It seems as though the problem starts around this line:
'dlltool' is not recognized as an internal or external command,
operable program or batch file.
I checked the C:\strawberry directory tree and no file named
dlltool.* appears to exist. Just in case it mysteriously disappeared
from my platform, I checked someone else's Strawberry Perl
installation, and he doesn't have it either.
Incidentally, I cd'ed to D:\tmp\_Inline\build
\extra_function_c_pl_850b and ran "dmake", and this is what I saw:
dlltool --def extra_function_c_pl_850b.def --output-exp dll.exp
'dlltool' is not recognized as an internal or external command,
operable program or batch file.
dmake: Error code 129, while making 'blib\arch\auto
\extra_function_c_pl_850b\extra_function_c_pl_850b.dll'
So it does seem likely that it's failing because "dlltool" can't be
found.
I'm puzzled here. Why did this program work just fine last month,
and today it's trying to run "dlltool", a program that seems to have
never existed in my Strawberry Perl installation in the first place?
Does anyone know how to get Inline::C working for me again? (I
reinstalled it with "cpan -fi Inline::C" but it didn't make any
difference.)
Thanks.
-- Jean-Luc