Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re^3: Perl 6 and exe

by vkon (Curate)
on Sep 18, 2007 at 15:31 UTC ( #639677=note: print w/replies, xml ) Need Help??

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 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, 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
      • <- to contain all text files with Perl scripts:, 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 like in Ilya's message
      The resulting perl executable runs your and w/o temporaries.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://639677]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (3)
As of 2023-01-29 22:33 GMT
Find Nodes?
    Voting Booth?

    No recent polls found