in reply to Creating a perl module on windows

ActiveState Perl 5.6.1 was compiled against (effectively) the Visual Studio 6.0 compiler and libraries. You can only use a version of Perl compiled using a compatible compiler and libraries to those that you wish to use to compile your XS code. Your options are to upgrade to a suitably built newer Perl, or build it yourself.


True laziness is hard work

Replies are listed 'Best First'.
Re^2: Creating a perl module on windows
by syphilis (Archbishop) on Nov 12, 2009 at 07:56 UTC
    Your options are to upgrade to a suitably built newer Perl, or build it yourself

    I think that if the error is "The application failed to start because MSVCR90.dll was not found", then there's a very strong chance that this can be fixed by simply placing MSVCR90.dll in the path - which is what Anonymous Monk suggested (in not so many words, of course ... as is his charter :-)

    Upgrading to a newer version of ActivePerl is unlikely to help as it, too, will have been built using MSVC++ 6.0. Nevertheless, the approach that gives best mileage is to use a compiler that uses the *same* C runtime as the compiler that built perl - which, for ActivePerl, means that you use either MSVC++ 6.0 or MinGW. With ActivePerl-5.6.1, you'll need to install ExtUtils-FakeConfig in order to use MinGW - with recent builds of ActivePerl 5.8 and 5.10 you won't need EU::FC.

    Cheers,
    Rob

      My apologies to the OP. I was under the impression that AS's 5.10 build was with a newer compiler. I've no idea where I got that from though. :(


      True laziness is hard work
        I was under the impression that AS's 5.10 build was with a newer compiler

        Their 64-bit builds of perl-5.8 and perl-5.10 are with a "newer compiler", but it's still a compiler that uses msvcrt.dll.

        ActiveState does have a rationale for using compilers that use the msvcrt.dll ... I'm sure I've seen explanations about this from Jan Dubois ... but I forget the actual reasoning, or where I've seen it presented. Anyone here know ?

        And apparently there's a version of Visual Studio 2008 kicking around that uses msvcrt.dll instead of msvcr90.dll (might be 64-bit only ... not sure) - which just adds another dimension to the oonfusion :-)

        Cheers,
        Rob

        Update: I just had to replace a "They're" with a "Their" (at the beginning of this post) ... it's hard for me to accept that my brain has deteriorated to such an extent ... next stop, incontinence ...