2009-08-06 24 views

Respuesta

40

pp puede crear un archivo ejecutable que incluye perl y su secuencia de comandos (y cualquier dependencia de módulo), pero será específico para su arquitectura, por lo que no podría ejecutarlo tanto en Windows como en Linux.

Desde su doc:

Para hacer un ejecutable independiente, adecuado para correr en un equipo que no tiene instalado el Perl:

% pp -o packed.exe source.pl  # makes packed.exe 
    # Now, deploy 'packed.exe' to target machine... 
    $ packed.exe      # run it 

(% $ y hay son instrucciones de comando en diferentes máquinas).

+0

hola me puedes explicar en pocas palabras ... porque soy muy novato a perl .... si tengo que añadir este código en el código fuente de Perl o tengo que ejecutarla al mando Promt .... He utilizado módulos como use Win32 :: OLE; use Win32 :: OLE :: Enum; use Spreadsheet :: BasicRead; cómo puedo hacer que mi .pl se ejecute en todos los sistemas. Windows (preferiblemente) – User1611

+0

@lokesh, creo que tendrían que empaquetar los scripts + módulos con un intérprete prel precompilado ** para cada sistema ** y ponerlos en un archivo zip. – Inshallah

+0

@Inshalla: para cada sistema operativo diferente, no cada computadora diferente – ysth

7

Mire PAR (Perl Archiving Toolkit).

PAR es un embalaje multiplataforma y herramienta de implementación, doblado como un cruce entre de Java JAR y Perl2EXE/PerlApp.

+0

Específicamente, el OP necesita 'pp': http://search.cpan.org/perldoc/pp –

+0

use PAR; % pp -o packed.exe try.pl # hace packed.exe $ packed.exe # run it hola este es mi código y he instalado PAR, pero a pesar de que arroja "no puedo ubicar PAR.pm @ INC. .. "¿puedes decirme dónde me equivoqué? ¿Puede decirme desde el básico por favor ... nunca lo había intentado antes ... tengo un archivo .pl y luego cómo puedo usar PAR para cambiar a .exe ¿puede decirme con un ejemplo – User1611

1

Los archivos Perl son scripts, no son programas ejecutables. Por lo tanto, para que 'corran', van a necesitar un intérprete.

lo tanto, usted tiene dos opciones: 1) Tener el intérprete en la máquina que se desea ejecutar la secuencia de comandos, o 2) tienen la secuencia de comandos se ejecuta en una máquina en red (o Internet) que forma remota conectarse a (es decir, con un navegador)

+2

pero, las dos respuestas antes que usted demostró que su comentario no es válido. – KevinDTimm

+2

No, no lo hicieron. PAR acaba de archivar un archivo binario perl específico de la plataforma con el script que está distribuyendo. – friedo

+0

@kevindtimm: David Lewis no está equivocado en lo que dice. El PP simplemente empacará el intérprete perl junto con el guión. Por lo tanto, sería equivalente a la opción número 1. – Inshallah

6

Y no olvidemos ActiveState's PDK. Le permitirá compilar UI, línea de comandos, servicios de Windows e instaladores.

Lo recomiendo encarecidamente, me ha servido muy bien a lo largo de los años, pero cuesta alrededor de 300 $ por una licencia.

3

Cava Packager es excelente en el ecosistema de Windows.

24
  1. Instalar PAR::Packer. Ejemplo de * nix:

    sudo cpan -i PAR::Packer

    para Strawberry Perl para Windows o para ActivePerl y MSVC instalado:

    cpan -i PAR::Packer
  2. Pack con pp. Creará un ejecutable llamado "example" o "example.exe" en Windows.

    pp -o example example.pl

Esto funcionaría sólo en el sistema operativo donde fue construido.

P.S. Es realmente difícil encontrar un clon de Unix sin Perl. ¿Te refieres a Windows?

+3

PAR no es una solución completa si el código que desea empaquetar necesita ser compilado de forma cruzada. –

+2

Además, no necesita el -i cambiar a cpan. Solo dale una lista de módulos y te figurará esa parte para ti. :) –

7

De respuesta perlfaq3 's a How can I compile my Perl program into byte code or C?:


(aportado por Brian D Foy)

En general, no se puede hacer esto. Sin embargo, hay algunas cosas que pueden funcionar para su situación. La gente generalmente hace esta pregunta porque quieren distribuir sus trabajos sin revelar el código fuente, y la mayoría de las soluciones intercambian espacio en el disco para mayor comodidad. Probablemente tampoco verá un aumento de velocidad, ya que la mayoría de las soluciones solo incluyen un intérprete Perl en el producto final (pero vea ¿Cómo puedo hacer que mi programa Perl se ejecute más rápido?).

Perl Archive Toolkit (http://par.perl.org/) es el análogo de Perl al JAR de Java. Está disponible gratuitamente y en CPAN (http://search.cpan.org/dist/PAR/).

También hay algunos productos comerciales que pueden funcionar para usted, aunque usted tiene que comprar una licencia para ellos.

El Perl Dev Kit (http://www.activestate.com/Products/Perl_Dev_Kit/) de ActiveState puede "Convertir sus programas Perl en ejecutables listos para ejecutar para HP-UX, Linux, Solaris y Windows".

Perl2Exe (http://www.indigostar.com/perl2exe.htm) es un programa de línea de comandos para convertir scripts Perl en archivos ejecutables. Se dirige tanto a plataformas Windows como a Unix.

+2

Tenga en cuenta que esta fue la respuesta en 2009, pero Reini Urban tiene actualizaciones –

Cuestiones relacionadas