in reply to XS build error
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: XS build error
by syphilis (Archbishop) on Jan 04, 2010 at 23:04 UTC | |
Yes, that appears to be the trouble - though, assuming that the op is using a recent build of ActivePerl (which appears to be the case), there should be no such problem when using MinGW. The specific problem I notice in the output provided by the op is that "-out:" is a VC++ flag. The comparable flag for MinGW is "-o". When MinGW sees -out:some_file, instead of trying to write to some_file, it tries to write to ut:some_file which, of course, is not a valid path. I don't know why it is that the op is getting that VC++ flag. It looks like the fact that MinGW is in use is being overlooked somewhere along the way - possibly in ExtUtils::MM_Win32. It may help us if we could see the output of perl -V (that's an upper case "V"), and if we also knew the version of ExtUtils::MakeMaker that's installed on that perl. (For the latter, run perl -MExtUtils::MakeMaker -e "print $ExtUtils::MakeMaker::VERSION") Cheers, Rob | [reply] [d/l] [select] |
by ikegami (Patriarch) on Jan 05, 2010 at 01:41 UTC | |
I was thinking it would get some args from Config, but I really don't know much about that. I have ActivePerl (built using MS compiler) and an MS compiler. | [reply] |
by syphilis (Archbishop) on Jan 05, 2010 at 02:44 UTC | |
That was my first thought, too, but I couldn't find any instances of -out in either Config.pm or Config_heavy.pl. I did find this, however, in ExtUtils::MM_Win32: and wondered whether that might be where the botch up occurs. With MinGW, $(LD) will be g++ (so that part fits with what we're seeing from the op), but I'm not sure what's contained in the other symbols and haven't checked. In any case, that code comes from a block that should only be entered if 'cl' is the compiler. There was a significant change from perl 5.10.0 to 5.10.1 on windows regarding $Config{cc}. With the former it was just plain old 'gcc' or 'cl' (or whatever), but with the latter it becomes 'X:/full/path/to/Y.exe' (where 'X' is the drive letter, and 'Y' is the name of the compiler.) This meant that, in EU::MM_Win32: had to be changed to: I don't quite see how all this fits in with the op's problem (and probably never will without perl -V and the version of EU::MM), but it looks a bit supicious. Cheers, Rob | [reply] [d/l] [select] |
by pvizeli (Initiate) on Jan 07, 2010 at 07:30 UTC | |
Your comment are very plausible. Sorry for my late answer but I had flu the last 2 days and was in my bed :/ Normaly I use perl on my FreeBSD computers, windows are also virgin territory for me. Here is the output of your commands:
I'll test a work around with manual change the Makefile, but this is only temporary. Can I install the VC and MakeMaker try to use it without any config changes? best regards, Pascal Vizeli | [reply] [d/l] [select] |
by ikegami (Patriarch) on Jan 08, 2010 at 01:45 UTC | |
Try
Update: It seems I missed that this was already discovered | [reply] [d/l] [select] |
by syphilis (Archbishop) on Jan 07, 2010 at 08:09 UTC | |
Simplest way to fix this would be to resort to the original version of EU::MM that shipped with build 1006 - and the easiest way to do that would be to just re-install ActivePerl "on top of" the existing perl installation. Then check that the version you have is reported as "6.55_02" (which, I think, might be different to the version 6.55_02 that's on CPAN). If it still reports 6.56, then we have to try and work out where that version 6.56 is located, and why it is being found instead of the version that ships with ActivePerl. Cheers, Rob | [reply] |
by pvizeli (Initiate) on Jan 07, 2010 at 10:39 UTC | |
by syphilis (Archbishop) on Jan 07, 2010 at 12:13 UTC | |
| |