http://qs321.pair.com?node_id=639677


in reply to Re^2: Perl 6 and exe
in thread Perl 6 and exe

there is a need to tweak the Perl source, if you really want perl executable with any extension to be linked statically into the main executable.

I was able to statically link into perl58.dll Tcl::Tk and some required for me modules. But you need some kind of linking set and some developed approach if you're going to gather some (unknown) extensions into the main exe.

PS.(keep in mind, this is not PAR approach, where huge ZIP is unpacked into %TEMP%)

Replies are listed 'Best First'.
Re^4: Perl 6 and exe
by ikegami (Patriarch) on Sep 18, 2007 at 15:40 UTC

    if you really want perl executable with any extension to be linked statically into the main executable

    I don't understand. There is no perl executable if Perl is statically linked into your executable.

      I had in mind main perl executable but linked in such a way that it runs foo.pl seamlessly (not from any application, we were talking of a way to create EXEs out from perl scripts from the very start.)

      suppose you have script foo.pl, which uses Bar:: and Fluffy:: XS extensions.
      ($^O equals to 'MSWin32' in my explanations)

      You want to create foo.exe, much like PAR but with statical linking and w/o temporary unzips.

      With an approach kept by me in mind (and by Ilya Zakharevich in mentioned link) you will result in:

      • perl58s.lib <- static library, which is not against perl58.dll, but rather all the code inside it
      • Bar.lib, Fluffy.lib <- same for extensions
      • foo.zip <- to contain all text files with Perl scripts: foo.pl, and required perl core library
      • perlmain.c from perl source distribution which contains RunPerl call, and link it against all mentioned libs
      • concatenate resulting EXE with foo.zip like in Ilya's message
      The resulting perl executable runs your foo.pl and w/o temporaries.