in reply to win32: distributing dll hell

Bottom line: you can't. ActiveState's current distributions are using an older compiler than you are and they are (as you have found out) compiling against a different version of the run time library. You have to build against the same libraries that AS used which means really that you have to use the same version of the compiler that AS used. The alternative is to build everything, including Perl, but the down side of that is you have to build everything.

You may be interested in Vanilla or Strawberry Perl as an alternative to the "build it from scratch" approach.


DWIM is Perl's answer to Gödel

Replies are listed 'Best First'.
Re^2: win32: distributing dll hell
by dk (Chaplain) on Jun 19, 2007 at 13:33 UTC
    Compling perl with v8 is not a problem, the problem will be with the ability to redistribute the resulted binaries -- they will in turn require the all that .manifest monstrosity. I wonder what compiler backend Vanilla/Strawberry perl uses - is it msvc- or cygwin-based?
      I wonder what compiler backend Vanilla/Strawberry perl uses - is it msvc- or cygwin-based?

      It uses the MinGW port of the gcc compiler - and hence uses the msvc runtime library. Vanilla/Strawberry binaries (dll's) therefore work fine on ActivePerl (and vice-versa, for that matter).

      However, as bart mentions elsewhere, you can use the very same MinGW port of gcc with ActivePerl anyway, if you want. (I don't think the performance issues you mentioned are significant, these days.)

      If you're committed to building with ActivePerl, then the best option is to use Visual Studio 6.0. If you can't acquire that compiler, then the next best thing is to use the MinGW port of gcc. http://www.perlmonks.org/index.pl?node_id=614808 may be of some help.

      I have also used Visual Studio 7.0 with ActivePerl without too much trouble - I don't think I'd even bother trying to use Visual Studio 8 with ActivePerl.

      Cheers,
      Rob