sintaxis ejecutar perl strawberry-perl perl2exe

ejecutar - ¿Cómo compilar un script de Perl para un ejecutable de Windows con Strawberry Perl?



ejecutar perl en windows (3)

¿Cuál sería la forma más fácil de compilar un simple script de Perl para un ejecutable en Windows con Strawberry Perl (ya que entiendo que es posible y gratis)?

En el pasado, he usado el compilador ActiveState y perl2exe y era bastante simple. Sin embargo, ahora después de algunos cambios en la computadora y actualizaciones del sistema operativo, he perdido las licencias y me gustaría encontrar una solución mejor / permanente.


Hay tres empaquetadores y dos compiladores:

paquete gratuito: PAR
empaquetadores comerciales: perl2exe, perlapp
compiladores: B :: C, B :: CC

http://search.cpan.org/dist/B-C/perlcompile.pod

(Nota: perlfaq3 todavía está mal)

Para fresa necesitas perl-5.16 y BC de git master (1.43), ya que BC-1.42 no admite 5.16.



:: short answer : :: perl -MCPAN -e "install PAR::Packer" pp -o <<DesiredExeName>>.exe <<MyFancyPerlScript>> :: long answer - create the following cmd , adjust vars to your taste ... :: next_line_is_templatized :: file:compile-morphus.1.2.3.dev.ysg.cmd v1.0.0 :: disable the echo @echo off :: this is part of the name of the file - not used set _Action=run :: the name of the Product next_line_is_templatized set _ProductName=morphus :: the version of the current Product next_line_is_templatized set _ProductVersion=1.2.3 :: could be dev , test , dev , prod next_line_is_templatized set _ProductType=dev :: who owns this Product / environment next_line_is_templatized set _ProductOwner=ysg :: identifies an instance of the tool ( new instance for this version could be created by simply changing the owner ) set _EnvironmentName=%_ProductName%.%_ProductVersion%.%_ProductType%.%_ProductOwner% :: go the run dir cd %~dp0 :: do 4 times going up for /L %%i in (1,1,5) do pushd .. :: The BaseDir is 4 dirs up than the run dir set _ProductBaseDir=%CD% :: debug echo BEFORE _ProductBaseDir is %_ProductBaseDir% :: remove the trailing / IF %_ProductBaseDir:~-1%==/ SET _ProductBaseDir=%_ProductBaseDir:~0,-1% :: debug echo AFTER _ProductBaseDir is %_ProductBaseDir% :: debug pause :: The version directory of the Product set _ProductVersionDir=%_ProductBaseDir%/%_ProductName%/%_EnvironmentName% :: the dir under which all the perl scripts are placed set _ProductVersionPerlDir=%_ProductVersionDir%/sfw/perl :: The Perl script performing all the tasks set _PerlScript=%_ProductVersionPerlDir%/%_Action%_%_ProductName%.pl :: where the log events are stored set _RunLog=%_ProductVersionDir%/data/log/compile-%_ProductName%.cmd.log :: define a favorite editor set _MyEditor=textpad ECHO Check the variables set _ :: debug PAUSE :: truncate the run log echo date is %date% time is %time% > %_RunLog% :: uncomment this to debug all the vars :: debug set >> %_RunLog% :: for each perl pm and or pl file to check syntax and with output to logs for /f %%i in (''dir %_ProductVersionPerlDir%/*.pl /s /b /a-d'' ) do echo %%i >> %_RunLog%&perl -wc %%i | tee -a %_RunLog% 2>&1 :: for each perl pm and or pl file to check syntax and with output to logs for /f %%i in (''dir %_ProductVersionPerlDir%/*.pm /s /b /a-d'' ) do echo %%i >> %_RunLog%&perl -wc %%i | tee -a %_RunLog% 2>&1 :: now open the run log cmd /c start /max %_MyEditor% %_RunLog% :: this is the call without debugging :: old echo CFPoint1 OK The run cmd script %0 is executed >> %_RunLog% echo CFPoint2 OK compile the exe file STDOUT and STDERR to a single _RunLog file >> %_RunLog% cd %_ProductVersionPerlDir% pp -o %_Action%_%_ProductName%.exe %_PerlScript% | tee -a %_RunLog% 2>&1 :: open the run log cmd /c start /max %_MyEditor% %_RunLog% :: uncomment this line to wait for 5 seconds :: ping localhost -n 5 :: uncomment this line to see what is happening :: PAUSE :: ::::::: :: Purpose: :: To compile every *.pl file into *.exe file under a folder ::::::: :: Requirements : :: perl , pp , win gnu utils tee :: perl -MCPAN -e "install PAR::Packer" :: text editor supporting <<textEditor>> <<FileNameToOpen>> cmd call syntax ::::::: :: VersionHistory :: 1.0.0 --- 2012-06-23 12:05:45 --- ysg --- Initial creation from run_morphus.cmd ::::::: :: eof file:compile-morphus.1.2.3.dev.ysg.cmd v1.0.0