• Publicidad

Problemas al compilar con perl2exe

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Problemas al compilar con perl2exe

Notapor Nahuz » 2007-07-09 12:55 @580

Buenas tardes,

Estoy teniendo un problema al compilar un archivo .pl a exe, en principio el problema era que me faltaban varios .pm.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl

require 5.003;
use Win32::SerialPort qw ( :STAT 0.19 );
use Time::localtime;
use Net::Telnet ();
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


baje cada uno de ellos y compila correctamente pero no a la hora de ejecutar el mismo, que no funciona, y me devuelve lo siguiente.

Código: Seleccionar todo
C:\>netro3.4.4.exe
Unknown error
Compilation failed in require at PERL2EXE_STORAGE/Win32API/CommPort.pm line 5, <DATA> line 164.
BEGIN failed--compilation aborted at PERL2EXE_STORAGE/Win32API/CommPort.pm line 5, <DATA> line 164.
Compilation failed in require at PERL2EXE_STORAGE/Win32/SerialPort.pm line 4, <DATA> line 164.
BEGIN failed--compilation aborted at PERL2EXE_STORAGE/Win32/SerialPort.pm line 4, <DATA> line 164.
Compilation failed in require at C:\netro3.4.4.exe line 4, <DATA> line 164.
BEGIN failed--compilation aborted at C:\netro3.4.4.exe line 4, <DATA> line 164.

This exe file was created with the evaluation version of Perl2Exe.
For more information visit http://www.indigostar.com
(The full version does not display this message with a 2 second delay.)
...


¿Tengo alguna otra alternativa?

Por otra parte, tengo el EXE original y su correspondiente source, la función del script es realizar un upgrade de un cpe. ¿Hay alguna manera de decodificar ese exe para transformarlo a PL y ver, si el source que me dieron es el mismo?

Desde ya, estaría muy agradecido por la ayuda.
Nahuz
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2007-07-09 12:32 @564

Publicidad

Notapor explorer » 2007-07-09 14:23 @641

Por lo que veo en este hilo:
http://www.perlmonks.org/index.pl?node_id=609286

no es posible decompilar el ejecutable. Antes era posible encontrar el directorio donde se desempaquetaba, pero parece que ahora no es tan simple.

Del mensaje de error que pones, me resulta extraño lo de la línea Unknown error.

¿perl2exe no da ningún aviso extraño a la hora de compilar? Prueba a compilarlo con la opción -v.

Hay más hilos sobre perl2exe. Usa el sistema de búsqueda.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor explorer » 2007-07-09 14:36 @650

En este hilo he encontrado que el mayor problema es identificar qué módulos usa el programa. Y que PAR es una opción perfectamente viable.
http://www.perlmonks.org/index.pl?displ ... ;replies=1
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor Nahuz » 2007-07-09 15:57 @706

¡Lo probaré y luego os diré que sucede!
Nahuz
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2007-07-09 12:32 @564

Notapor Nahuz » 2007-07-09 18:09 @798

Al compilar con el -v, sale lo siguiente:

Código: Seleccionar todo
C:\perl2exe>perl2exe -v netro3.1.3.pl
Perl2Exe V8.80 Copyright (c) 1997-2006 IndigoSTAR Software
Cmd = -v netro3.1.3.pl
CWD = C:\perl2exe
Known platforms: Win32
Target platform = Win32 5.008008
$I =
$ENV{'PERL5LIB'} =
Found perl.exe at C:\Perl\bin
LibList = C:\Perl\lib,C:\Perl\site\lib,.

This is an evaluation version of Perl2Exe, which may be used for 30 days.
For more information see the attached pxman.htm file,
or visit http://www.indigostar.com

Converting 'netro3.1.3.pl' to netro3.1.3.exe
Compiling netro3.1.3.pl
Compiling C:\Perl\lib\Win32\SerialPort.pm
Compiling C:\Perl\lib\Win32.pm
Compiling C:\Perl\lib\auto\Win32\Win32.dll
Compiling C:\Perl\lib\strict.pm
Compiling C:\Perl\lib\Carp.pm
Compiling C:\Perl\lib\Exporter.pm
Compiling C:\Perl\lib\Exporter\Heavy.pm
Compiling C:\Perl\lib\Carp\Heavy.pm
Compiling C:\Perl\lib\vars.pm
Compiling C:\Perl\lib\warnings\register.pm
Compiling C:\Perl\lib\warnings.pm
Compiling C:\Perl\lib\DynaLoader.pm
Compiling C:\Perl\lib\auto\DynaLoader\autosplit.ix
Compiling C:\Perl\lib\auto\DynaLoader\dl_expandspec.al
Compiling C:\Perl\lib\auto\DynaLoader\dl_findfile.al
Compiling C:\Perl\lib\auto\DynaLoader\dl_find_symbol_anywhere.al
Compiling C:\Perl\lib\AutoLoader.pm
Compiling C:\Perl\lib\Config.pm
Compiling C:\Perl\lib\Config_heavy.pl
Compiling C:\Perl\lib\ActivePerl\Config.pm
Compiling C:\Perl\lib\ActiveState\Path.pm
Compiling C:\Perl\lib\constant.pm
Compiling C:\Perl\lib\File\Basename.pm
Compiling C:\Perl\lib\re.pm
Compiling C:\Perl\lib\auto\re\re.dll
Compiling C:\Perl\lib\Term\Cap.pm
Compiling C:\Perl\lib\XSLoader.pm
Compiling C:\Perl\lib\Cwd.pm
Compiling C:\Perl\lib\auto\Cwd\Cwd.dll
Compiling C:\Perl\lib\File\Spec.pm
Compiling C:\Perl\lib\File\Spec\Win32.pm
Compiling C:\Perl\lib\File\Spec\Unix.pm
Compiling C:\Perl\lib\Scalar\Util.pm
Compiling C:\Perl\lib\List\Util.pm
Compiling C:\Perl\lib\auto\List\Util\Util.dll
Compiling C:\Perl\lib\Win32API\CommPort.pm
Compiling C:\Perl\lib\Win32\API.pm
Compiling C:\Perl\lib\Win32\API\Type.pm
Compiling C:\Perl\lib\Win32\API\Struct.pm
Compiling C:\Perl\lib\Time\localtime.pm
Compiling C:\Perl\lib\Time\tm.pm
Compiling C:\Perl\lib\Class\Struct.pm
Compiling C:\Perl\lib\Net\Telnet.pm
Compiling C:\Perl\lib\Socket.pm
Compiling C:\Perl\lib\auto\Socket\Socket.dll
Compiling C:\Perl\lib\Symbol.pm
Compiling C:\Perl\lib\FileHandle.pm
Compiling C:\Perl\lib\IO\File.pm
Compiling C:\Perl\lib\SelectSaver.pm
Compiling C:\Perl\lib\IO\Seekable.pm
Compiling C:\Perl\lib\IO\Handle.pm
Compiling C:\Perl\lib\IO.pm
Compiling C:\Perl\lib\auto\IO\IO.dll
Compiling C:\Perl\lib\Fcntl.pm
Compiling C:\Perl\lib\auto\Fcntl\Fcntl.dll
Compiling C:\Perl\lib\IO\Socket.pm
Compiling C:\Perl\lib\Errno.pm
Compiling C:\Perl\lib\IO\Socket\INET.pm
Compiling C:\Perl\lib\IO\Socket\UNIX.pm
Compiling C:\Perl\lib\IO\Select.pm


y el error el EXE generado es el siguiente, por cierto ha cambiado.

Código: Seleccionar todo
C:\perl2exe>netro3.1.3.exe
Can't locate loadable object for module Win32::API in @INC (@INC contains: PERL2EXE_STORAGE C:\perl2exe C:\DOCUME~1\Sturzen\CONFIG~1\Temp/p2xtmp-14944) at PERL2EXE_STORAGE/Win32API/CommPort.pm line 5
Compilation failed in require at PERL2EXE_STORAGE/Win32API/CommPort.pm line 5, <DATA> line 164.
BEGIN failed--compilation aborted at PERL2EXE_STORAGE/Win32API/CommPort.pm line 5, <DATA> line 164.
Compilation failed in require at PERL2EXE_STORAGE/Win32/SerialPort.pm line 4, <DATA> line 164.
BEGIN failed--compilation aborted at PERL2EXE_STORAGE/Win32/SerialPort.pm line 4, <DATA> line 164.
Compilation failed in require at C:\perl2exe\netro3.1.3.exe line 4, <DATA> line 164.
BEGIN failed--compilation aborted at C:\perl2exe\netro3.1.3.exe line 4, <DATA> line 164.

This exe file was created with the evaluation version of Perl2Exe.
For more information visit http://www.indigostar.com
(The full version does not display this message with a 2 second delay.)
Nahuz
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2007-07-09 12:32 @564

Notapor explorer » 2007-07-09 19:06 @838

Las dos primeras búsquedas en Google muestran que ese error es porque Win32API se ha instalado mal, y que la recomendación es la de instalar la distribución Win32-API usando el gestor de paquetes de ActiveState ppm:

ppm install Win32-API

http://www.mail-archive.com/perl-win32- ... 35783.html
http://www.dbforums.com/showthread.php?t=841752

y en el caso de no usar el Perl de ActiveState, lo que hay que hacer es colocar API.dll en alguno de los caminos de @INC para que lo encuentre (como indica el primer enlace). Viendo la lista de ficheros que compila se ve que justamente falta el fichero API.dll.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor Kiloko » 2007-07-16 18:27 @810

jo, en su caso comprar, reinstalar la versión de prueba... esperando no te diga que no se puede...
Nunca interrumpas a tu enemigo cuando está cometiendo un error
Napoleón Bonaparte
Avatar de Usuario
Kiloko
Perlero nuevo
Perlero nuevo
 
Mensajes: 243
Registrado: 2007-07-10 18:26 @810
Ubicación: MOnterrey NL

Notapor explorer » 2007-07-16 18:33 @815

¿Comprar? ActivePerl es gratuito...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor Kiloko » 2007-07-16 18:39 @818

jajajaja, por eso lo digo,,
y para ppm. yo usaría
http://enginsite.com/index.htm
para bajar e instalar los módulos.
Nunca interrumpas a tu enemigo cuando está cometiendo un error
Napoleón Bonaparte
Avatar de Usuario
Kiloko
Perlero nuevo
Perlero nuevo
 
Mensajes: 243
Registrado: 2007-07-10 18:26 @810
Ubicación: MOnterrey NL


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot] y 3 invitados