in reply to Re^3: problem installing PLJava on Windows Vista
in thread problem installing PLJava on Windows Vista

Your particular problem is still puzzling me no end :-)
Glad I could muster up a challenge...

What does 'perl -V' output ? (That's an uppercase 'V').
Lessee here...

Set up gcc environment - 3.4.5 (mingw-vista special r3) Summary of my perl5 (revision 5 version 10 subversion 0) configuratio +n: Platform: osname=MSWin32, osvers=5.00, archname=MSWin32-x86-multi-thread uname='' config_args='undef' hint=recommended, useposix=true, d_sigaction=undef useithreads=define, usemultiplicity=define useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=un +def use64bitint=undef, use64bitall=undef, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='gcc', ccflags ='-DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE +_DES_FCRYP T -DUSE_SITECUSTOMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -< +br/><br/><br/>DPERL_IMPLI CIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -DHASATTRIBUTE -fno-strict- +aliasing - mms-bitfields', optimize='-O2', cppflags='-DWIN32' ccversion='', gccversion='3.4.5 (mingw-vista special r3)', gccosan +dvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=10 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='__int64 +', lseeksi ze=8 alignbytes=8, prototype=define Linker and Libraries: ld='g++', ldflags ='-L"C:\Perl\lib\CORE"' libpth=\lib libs=-lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 +-lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion +-lodbc32 - lodbccp32 -lmsvcrt perllibs=-lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvap +i32 -lshel l32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lvers +ion -lodbc 32 -lodbccp32 -lmsvcrt libc=msvcrt.lib, so=dll, useshrplib=true, libperl=perl510.lib gnulibc_version='' Dynamic Linking: dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags='-mdll -L"C:\Perl\lib\CORE"' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT PERL_IMPLICIT_SYS PERL_MALLOC_WRAP PL_OP_SLAB_ALLOC USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_SITECUSTOMIZE Locally applied patches: ActivePerl Build 1005 [290470] f7bbab select() generates 'Invalid parameter' messages on Wind +ows Vista. 8dc00b fix buffer overflow in win32_select() 36f064 do/require don't treat '.&#9792;oo' or '..&#9792;oo' as + absolute paths on Win dows 287a96 fix -p function and Fcntl::S_IFIFO constant under Micro +soft VC co mpiler 406878 avoids segfaults invoking S_raise_signal() (on Linux) 40c7cc Win32 process ids can have more than 16 bits 37589e Load 'loadable object' with non-default file extension d374f9 64-bit fix for Time::Local Built under MSWin32 Compiled at May 24 2009 12:17:36 @INC: C:/Perl/site/lib C:/Perl/lib .

Also, how did you install MinGW (was it via 'ppm', or some other way) ?
Got it off Sourceforge, automated installer; version 5.1.4

I'm thinking you could try using the freely available dmake instead of that crappy old version of nmake that you have, though I'm not sure it will improve things for you.
Same exact deal except the last line goes "dmake: Error code 129, while making 'PLJava.dll'"

Replies are listed 'Best First'.
Re^5: problem installing PLJava on Windows Vista
by syphilis (Archbishop) on Jun 16, 2009 at 03:45 UTC
    It gets weirder by the minute. (You did run 'nmake realclean' before starting with dmake ? And you'll need to remove 'nmake.exe' from your path in order to successfully use 'dmake'. Check that 'perl -V:make' reports 'make=dmake' before running 'perl Makefile.PL')
    I've got the same as you, yet the build succeeds. ('dmake test' won't work, so there's still some work to do, but at least the 'Makefile.PL' and 'dmake' steps work ok - though there's a couple of warnings during 'dmake' that bother me a bit.)

    So, probably best to post the entire output you get from running 'perl Makefile.PL' and 'dmake'. I've copied the output I'm getting, and placed it below my sig - maybe you can spot something relevant.

    What version of ExtUtils::MakeMaker do you have ? I have 6.42_01 which is the version that shipped with build 1005.

    Cheers,
    Rob
    C:\_32\comp\PLJava-0.04>perl Makefile.PL Set up gcc environment - 3.4.5 (mingw-vista special r3) Note (probably harmless): No library found for -lkernel32 Note (probably harmless): No library found for -luser32 Note (probably harmless): No library found for -lgdi32 Note (probably harmless): No library found for -lwinspool Note (probably harmless): No library found for -lcomdlg32 Note (probably harmless): No library found for -ladvapi32 Note (probably harmless): No library found for -lshell32 Note (probably harmless): No library found for -lole32 Note (probably harmless): No library found for -loleaut32 Note (probably harmless): No library found for -lnetapi32 Note (probably harmless): No library found for -luuid Note (probably harmless): No library found for -lws2_32 Note (probably harmless): No library found for -lmpr Note (probably harmless): No library found for -lwinmm Note (probably harmless): No library found for -lversion Note (probably harmless): No library found for -lodbc32 Note (probably harmless): No library found for -lodbccp32 Note (probably harmless): No library found for -lmsvcrt Writing Makefile for PLJava C:\_32\comp\PLJava-0.04>dmake gcc -c -I"C:\jdk1.5.0_07\include" -I"C:\jdk1.5.0_07\include/win32" -Wa +ll -Wno-co mments -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DUS +E_SITECUST OMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SY +S -DUSE_PE RLIO -DPERL_MSVCRT_READFIX -DHASATTRIBUTE -fno-strict-aliasing -mms-bi +tfields - I"C:\_32\ap1005\lib\CORE" PLJava.c PLJava.c: In function `PLJava_eval': PLJava.c:81: warning: unused variable `my_perl' PLJava.c: In function `PLJava_eval_sv': PLJava.c:95: warning: unused variable `my_perl' PLJava.c: In function `PLJava_error': PLJava.c:115: warning: unused variable `my_perl' gcc -c -I"C:\jdk1.5.0_07\include" -I"C:\jdk1.5.0_07\include/win32" -Wa +ll -Wno-co mments -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DUS +E_SITECUST OMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SY +S -DUSE_PE RLIO -DPERL_MSVCRT_READFIX -DHASATTRIBUTE -fno-strict-aliasing -mms-bi +tfields - I"C:\_32\ap1005\lib\CORE" PLJava_wrap.c PLJava_wrap.c:39: warning: 'SWIG_JavaThrowException' defined but not u +sed C:\jdk1.5.0_07\bin\javac -d ./ *.java g++ PLJava.o PLJava_wrap.o -s -L"C:\_32\ap1005\lib\CORE" C:\_32\ap1 +005\lib\CO RE\perl510.lib -shared -dll -o PLJava.dll C:\_32\ap1005\bin\perl.exe MakeFile.PL renametree basiclib txt Set up gcc environment - 3.4.5 (mingw-vista special r3) C:\_32\ap1005\bin\perl.exe -MExtUtils::Command -e rm_rf lib C:\_32\ap1005\bin\perl.exe -MExtUtils::Command -e rm_rf built C:\_32\ap1005\bin\perl.exe MakeFile.PL renametree basiclib . Set up gcc environment - 3.4.5 (mingw-vista special r3) C:\_32\ap1005\bin\perl.exe -MExtUtils::Manifest=manicopy,maniread -e " +chdir('basiclib') ; manicopy( { %{ maniread('MANIFEST-LIB') } } ,'../ +lib');" mkdir ../lib mkdir ../lib/XML mkdir ../lib/XML/Smart mkdir ../lib/auto mkdir ../lib/auto/DynaLoader mkdir ../lib/Carp mkdir ../lib/warnings mkdir ../lib/Object mkdir ../lib/Exporter mkdir ../lib/Data C:\_32\ap1005\bin\perl.exe -MExtUtils::Manifest=manicopy,maniread -e " +manicopy( { 'PLJava.dll' => '' , %{ maniread('MANIFEST-BUILT') } } ,'built');" mkdir built mkdir built/lib mkdir built/lib/XML mkdir built/lib/XML/Smart mkdir built/perl5 mkdir built/perl5/lib mkdir built/lib/Carp mkdir built/lib/Object mkdir built/lib/warnings mkdir built/lib/Data mkdir built/lib/auto mkdir built/lib/auto/DynaLoader mkdir built/lib/Exporter C:\_32\comp\PLJava-0.04>dmake test C:\jdk1.5.0_07\bin\java test PLJava - Native code library failed to load. See the chapter on Dynami +c Linking Problems in the SWIG Java documentation for help. java.lang.UnsatisfiedLinkError: PLJava_start dmake.exe: Error code 129, while making 'test' C:\_32\comp\PLJava-0.04>

      dmake indeed. ExtUtils::MakeMaker version is 6.42_01. Still a rotten failure, output below.

      Whether this ends up working or not, I thank you a bundle, Mr. Rob.

      C:\Users\Name\Documents\Downloads\PLJava-0.04>perl -V:make make='dmake'; C:\Users\Name\Documents\Downloads\PLJava-0.04>perl Makefile.PL Set up gcc environment - 3.4.5 (mingw-vista special r3) Writing Makefile for PLJava C:\Users\Name\Documents\Downloads\PLJava-0.04>dmake gcc -c -I"C:\PROGRA~1\Java\jdk1.5.0\include" -I"C:\PROGRA~1\Java\jdk1. +5.0\includ e/win32" -Wall -Wno-comments -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT +-DHAVE_DES _FCRYPT -DUSE_SITECUSTOMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONT +EXT -DPERL _IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -DHASATTRIBUTE -fno-s +trict-alia sing -mms-bitfields -I"C:\Perl\lib\CORE" PLJava.c PLJava.c: In function `PLJava_eval': PLJava.c:81: warning: unused variable `my_perl' PLJava.c: In function `PLJava_eval_sv': PLJava.c:95: warning: unused variable `my_perl' PLJava.c: In function `PLJava_error': PLJava.c:115: warning: unused variable `my_perl' PLJava.c: In function `main': PLJava.c:173: warning: control reaches end of non-void function PLJava.c:173:13: warning: no newline at end of file gcc -c -I"C:\PROGRA~1\Java\jdk1.5.0\include" -I"C:\PROGRA~1\Java\jdk1. +5.0\includ e/win32" -Wall -Wno-comments -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT +-DHAVE_DES _FCRYPT -DUSE_SITECUSTOMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONT +EXT -DPERL _IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -DHASATTRIBUTE -fno-s +trict-alia sing -mms-bitfields -I"C:\Perl\lib\CORE" PLJava_wrap.c PLJava_wrap.c:39: warning: 'SWIG_JavaThrowException' defined but not u +sed C:\PROGRA~1\Java\jdk1.5.0\bin\javac -d ./ *.java g++ PLJava.o PLJava_wrap.o -s -L"C:\Perl\lib\CORE" C:\Perl\lib\CORE +\perl510.l ib C:\MinGW\lib\libkernel32.a C:\MinGW\lib\libuser32.a C:\MinGW\lib\li +bgdi32.a C :\MinGW\lib\libwinspool.a C:\MinGW\lib\libcomdlg32.a C:\MinGW\lib\liba +dvapi32.a C:\MinGW\lib\libshell32.a C:\MinGW\lib\libole32.a C:\MinGW\lib\libolea +ut32.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:\Min +GW\lib\lib odbc32.a C:\MinGW\lib\libodbccp32.a C:\MinGW\lib\libmsvcrt.a -shared - +dll -o PLJ ava.dll g++: unrecognized option `-shared' PLJava.o(.text+0x89):PLJava.c: undefined reference to `perl_alloc' PLJava.o(.text+0x9b):PLJava.c: undefined reference to `Perl_set_contex +t' PLJava.o(.text+0xa8):PLJava.c: undefined reference to `perl_construct' PLJava.o(.text+0xad):PLJava.c: undefined reference to `Perl_get_contex +t' PLJava.o(.text+0xb5):PLJava.c: undefined reference to `Perl_Iperl_dest +ruct_level _ptr' PLJava.o(.text+0xe3):PLJava.c: undefined reference to `perl_parse' PLJava.o(.text+0xf3):PLJava.c: undefined reference to `perl_run' PLJava.o(.text+0xfb):PLJava.c: undefined reference to `Perl_get_contex +t' PLJava.o(.text+0x113):PLJava.c: undefined reference to `Perl_eval_pv' PLJava.o(.text+0x123):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x12f):PLJava.c: undefined reference to `Perl_Gcurinter +p_ptr' PLJava.o(.text+0x139):PLJava.c: undefined reference to `Perl_set_conte +xt' PLJava.o(.text+0x13e):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x157):PLJava.c: undefined reference to `Perl_eval_pv' PLJava.o(.text+0x1c3):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x1e8):PLJava.c: undefined reference to `Perl_sv_2pv_fl +ags' PLJava.o(.text+0x203):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x21f):PLJava.c: undefined reference to `Perl_Gcurinter +p_ptr' PLJava.o(.text+0x229):PLJava.c: undefined reference to `Perl_set_conte +xt' PLJava.o(.text+0x22e):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x246):PLJava.c: undefined reference to `Perl_get_sv' PLJava.o(.text+0x24e):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x266):PLJava.c: undefined reference to `Perl_sv_setpv' PLJava.o(.text+0x26b):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x284):PLJava.c: undefined reference to `Perl_eval_pv' PLJava.o(.text+0x28c):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x2a5):PLJava.c: undefined reference to `Perl_sv_setpv' PLJava.o(.text+0x30e):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x333):PLJava.c: undefined reference to `Perl_sv_2pv_fl +ags' PLJava.o(.text+0x353):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x35f):PLJava.c: undefined reference to `Perl_Gcurinter +p_ptr' PLJava.o(.text+0x369):PLJava.c: undefined reference to `Perl_set_conte +xt' PLJava.o(.text+0x36e):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x376):PLJava.c: undefined reference to `Perl_Ierrgv_pt +r' PLJava.o(.text+0x38e):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x396):PLJava.c: undefined reference to `Perl_Ierrgv_pt +r' PLJava.o(.text+0x3a4):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x3ac):PLJava.c: undefined reference to `Perl_Ierrgv_pt +r' PLJava.o(.text+0x3c0):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x3c8):PLJava.c: undefined reference to `Perl_Ierrgv_pt +r' PLJava.o(.text+0x3dc):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x3e4):PLJava.c: undefined reference to `Perl_Ierrgv_pt +r' PLJava.o(.text+0x3f5):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x3fd):PLJava.c: undefined reference to `Perl_Ierrgv_pt +r' PLJava.o(.text+0x407):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x423):PLJava.c: undefined reference to `Perl_sv_2pv_fl +ags' PLJava.o(.text+0x43c):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x44a):PLJava.c: undefined reference to `Perl_Gcurinter +p_ptr' PLJava.o(.text+0x454):PLJava.c: undefined reference to `Perl_set_conte +xt' PLJava.o(.text+0x45c):PLJava.c: undefined reference to `perl_destruct' PLJava.o(.text+0x464):PLJava.c: undefined reference to `perl_free' PLJava.o(.text+0x476):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x47e):PLJava.c: undefined reference to `Perl_Istack_sp +_ptr' PLJava.o(.text+0x488):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x490):PLJava.c: undefined reference to `Perl_Imarkstac +k_ptr_ptr' PLJava.o(.text+0x49f):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x4a7):PLJava.c: undefined reference to `Perl_Istack_ba +se_ptr' PLJava.o(.text+0x4cf):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x4df):PLJava.c: undefined reference to `Perl_croak' PLJava.o(.text+0x4e4):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x4ec):PLJava.c: undefined reference to `Perl_Istack_ba +se_ptr' PLJava.o(.text+0x505):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x516):PLJava.c: undefined reference to `Perl_sv_rvweak +en' PLJava.o(.text+0x522):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x52a):PLJava.c: undefined reference to `Perl_Istack_sp +_ptr' PLJava.o(.text+0x531):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x539):PLJava.c: undefined reference to `Perl_Istack_ba +se_ptr' PLJava.o(.text+0x567):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x56f):PLJava.c: undefined reference to `Perl_Istack_sp +_ptr' PLJava.o(.text+0x579):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x581):PLJava.c: undefined reference to `Perl_Imarkstac +k_ptr_ptr' PLJava.o(.text+0x590):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x598):PLJava.c: undefined reference to `Perl_Istack_ba +se_ptr' PLJava.o(.text+0x5c0):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x5d0):PLJava.c: undefined reference to `Perl_croak' PLJava.o(.text+0x5d5):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x5dd):PLJava.c: undefined reference to `Perl_Istack_ba +se_ptr' PLJava.o(.text+0x5f6):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x607):PLJava.c: undefined reference to `Perl_sv_isobje +ct' PLJava.o(.text+0x60f):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x617):PLJava.c: undefined reference to `Perl_Istack_ba +se_ptr' PLJava.o(.text+0x632):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x63a):PLJava.c: undefined reference to `Perl_Isv_yes_p +tr' PLJava.o(.text+0x644):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x64c):PLJava.c: undefined reference to `Perl_Isv_no_pt +r' PLJava.o(.text+0x660):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x668):PLJava.c: undefined reference to `Perl_Istack_ba +se_ptr' PLJava.o(.text+0x67b):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x68c):PLJava.c: undefined reference to `Perl_sv_2morta +l' PLJava.o(.text+0x698):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x6a0):PLJava.c: undefined reference to `Perl_Istack_sp +_ptr' PLJava.o(.text+0x6a7):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x6af):PLJava.c: undefined reference to `Perl_Istack_ba +se_ptr' PLJava.o(.text+0x6e3):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x6f4):PLJava.c: undefined reference to `boot_DynaLoade +r' PLJava.o(.text+0x704):PLJava.c: undefined reference to `Perl_newXS' PLJava.o(.text+0x709):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x73a):PLJava.c: undefined reference to `Perl_newXS_fla +gs' PLJava.o(.text+0x73f):PLJava.c: undefined reference to `Perl_get_conte +xt' PLJava.o(.text+0x760):PLJava.c: undefined reference to `Perl_newXS' collect2: ld returned 1 exit status dmake: Error code 129, while making 'PLJava.dll' C:\Users\Name\Documents\Downloads\PLJava-0.04>
        I don't get these warnings:
        PLJava.c: In function `main': PLJava.c:173: warning: control reaches end of non-void function PLJava.c:173:13: warning: no newline at end of file
        Do you have a 'main' function in PLJava.c ? Where on earth did it come from ?

        PLJava.c is a file that shipped with the PLJava-0.04 source. My copy of it definitely has no function named 'main', and there is definitely a newline at the end of the file. If we get those 2 things sorted out it might build. You can see what PLJava.c should look like at http://cpansearch.perl.org/src/GMPASSOS/PLJava-0.04/PLJava.c.

        Cheers,
        Rob