perler has asked for the wisdom of the Perl Monks concerning the following question:

AARG! Yet another help install "inline.pm" on Win32!
in short:
I got installed:
vanilla-perl
activestate perl
inline.pm (installed with cpan)

uninstalled Visual studio developement. inline.pm kept nagging about the files in VC\bin

in directory:
C:\vanilla-perl\_Inline\build\test_inline1_pl_33e8

I do:
perl Makefile.pl

I get:
Set up gcc environment - 3.4.5 (mingw special)
Writing Makefile for test_inline1_pl_33e8

I then do:
dmake

(man, I dont know if this makes sense, I'm just trying to do the same thing with "dmake"
as I'm told to do with "make/nmake" in the support notes)

then I get:

gcc -c -IC:/vanilla-perl -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_D ES_FCRYPT -DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPL ICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -DHASATTRIBUTE -fno-strict-aliasing -O2 -DVERSION=\"0.00\" -DXS_VERSION=\"0.00\" "-IC:\Perl\lib\CORE" te st_inline1_pl_33e8.c Running Mkbootstrap for test_inline1_pl_33e8 () C:\Perl\bin\perl.exe -MExtUtils::Command -e chmod 644 test_inline1_pl_33e8.bs dlltool --def test_inline1_pl_33e8.def --output-exp dll.exp g++ -o blib\arch\auto\test_inline1_pl_33e8\test_inline1_pl_33e8.dll -Wl,--base-f ile -Wl,dll.base -mdll -L"C:\Perl\lib\CORE" test_inline1_pl_33e8.obj -Wl,--image -base,0x2b0c0000 C:\Perl\lib\CORE\perl58.lib -lkernel32 -luser32 -lgdi32 -lwins pool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_ 32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lmsvcrt dll.exp g++: test_inline1_pl_33e8.obj: No such file or directory dmake: Error code 129, while making 'blib\arch\auto\test_inline1_pl_33e8\test_i nline1_pl_33e8.dll'


if I try to run my inline test script "test_inline1.pl"
I get:

C:\Perl\bin\perl.exe C:\Perl\lib\ExtUtils\xsubpp -typemap C:\Perl\lib\ExtUtils\ typemap test_inline1_pl_33e8.xs > test_inline1_pl_33e8.xsc && C:\Perl\bin\perl. exe -MExtUtils::Command -e mv test_inline1_pl_33e8.xsc test_inline1_pl_33e8.c gcc -c -IC:/vanilla-perl -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_D ES_FCRYPT -DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPL ICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -DHASATTRIBUTE -fno-strict-aliasing -O2 -DVERSION=\"0.00\" -DXS_VERSION=\"0.00\" "-IC:\Perl\lib\CORE" te st_inline1_pl_33e8.c Running Mkbootstrap for test_inline1_pl_33e8 () C:\Perl\bin\perl.exe -MExtUtils::Command -e chmod 644 test_inline1_pl_33e8.bs C:\Perl\bin\perl.exe -MExtUtils::Mksymlists \ -e "Mksymlists('NAME'=>\"test_inline1_pl_33e8\", 'DLBASE' => 'test_inline1_ pl_33e8', 'DL_FUNCS' => { }, 'FUNCLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => []);" Set up gcc environment - 3.4.5 (mingw special) dlltool --def test_inline1_pl_33e8.def --output-exp dll.exp g++ -o blib\arch\auto\test_inline1_pl_33e8\test_inline1_pl_33e8.dll -Wl,--base-f ile -Wl,dll.base -mdll -L"C:\Perl\lib\CORE" test_inline1_pl_33e8.obj -Wl,--image -base,0x2b0c0000 C:\Perl\lib\CORE\perl58.lib -lkernel32 -luser32 -lgdi32 -lwins pool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_ 32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lmsvcrt dll.exp g++: test_inline1_pl_33e8.obj: No such file or directory dmake: Error code 129, while making 'blib\arch\auto\test_inline1_pl_33e8\test_i nline1_pl_33e8.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:
C:\vanilla-perl\_Inline\build\test_inline1_pl_33e8

To debug the problem, cd to the build directory, and inspect the output files.

at test_inline1.pl line 0
INIT failed--call queue aborted.

What to do?
I have tried those solutions I could find on the net, but none of them works!?
I'm REALLY stuck!

Replies are listed 'Best First'.
Re: installing Inline.pm on XP pro
by syphilis (Archbishop) on Jun 17, 2007 at 23:30 UTC
    Hi, That output you've supplied is what you get when you're using ActivePerl. With Strawberry Perl, you shouldn't have that problem.

    The problem is that gcc builds test_inline1_pl_33e8.o, but perl tells g++ to go looking for test_inline1_pl_33e8.obj which, of course, can't be found.

    To fix, open up perl/lib/Config.pm, locate the line obj_ext => '.obj', and remove it (or comment it out). It shouldn't be there.

    Cheers,
    Rob
      Thanks for replying Rob! And you are even right!!!
      But then I got this error:
      dmake: Error: -- Configuration file `C:\Perl\site\bin\startup\startup.mk' not f ound

      Even though I got this path in my "PATH" enviroment variable:
      C:\vanilla-perl\dmake\bin\startup

      So I did something ugly, I copied the vanilla-perl startup dir to the C:\Perl\site\bin\ path

      Then my test script worked,puha!
      But isn't there a nicer way to do this?
      It seems that Perl is not checking the right path eventhough its in the enviroment variable.
      I mean there must be a way you can make perl look in the right spot.
      (Its okay if you dont reply. it would just be nice to know.)

      PS. Wow! Running "inline.pm" after a few hours on PerlMonks. I think I'll stick around for a bit :-)
      Thanks again.
        dmake: Error: -- Configuration file `C:\Perl\site\bin\startup\startup.mk' not f ound

        Looks like someone has put a copy of dmake.exe into C:\Perl\site\bin. I would delete it from there and also delete the startup folder you placed in Perl\site\bin. Having removed them, add C:\vanilla-perl\dmake\bin to your path environment variable, and all should be fine.

        There's no reason you can't have dmake and the startup folder in C:\Perl\site\bin - except for the ugliness factor (as you noted). And you already have a perfectly functional dmake set up in vanilla perl - so better to simply use it (by amending the path) instead of creating an unnecessary duplicate of dmake and its startup folder.

        Cheers,
        Rob
        Update: Come to think of it, C:\vanilla-perl\dmake\bin is probably already in the path - in which case simply deleting the copy of dmake.exe that was in C:\Perl\site\bin would have been sufficient.
A reply falls below the community's threshold of quality. You may see it by logging in.