2008-11-04 11 views
6

Tengo un programa C con un intérprete Perl integrado. Quiero ser capaz de precompilar algún código Perl desde dentro del programa. ¿Cómo puedo hacer eso?¿Cómo compilo el código Perl dentro de un programa C?

Justificación (si alguien está interesado) es poder compilarlo una vez, almacenar el árbol de análisis sintáctico y ejecutarlo muchas veces (siempre que el código compilado no cambie).

Gracias! Madhu

PD: Estoy usando Perl-5.8, aunque sería bueno saber si Perl-6.0 lo hace más fácil de cualquier manera.

+0

wrt su razón de ser, ¿está incrustando Perl solo para almacenar el árbol de análisis sintáctico y así disminuir el tiempo de inicio? ¿O el programa C hace algo más? Si solo es por el tiempo de inicio, hay otras maneras de hacerlo. – Schwern

Respuesta

11

Este es el comportamiento predeterminado cuando embed the Perl interpreter in a C program. Después de ejecutar perl_parse() para analizar el programa Perl, puede usar perl_run() y call_argv() una y otra vez con el mismo programa Perl analizado.

0

En referencia a Perl 6, no está completo. Pero 5.10.0 podría tener algunas correcciones de errores sobre 5.8.

2

Puede usar perlcc para crear fuentes ejecutables o C.

Para compilar su código C, necesitaría usar la biblioteca de perl (podría ser -lperl o -llibperl).

+0

Si todo lo que desea es un archivo binario ejecutable, use PAR para hacerlo. http://search.cpan.org/perldoc?pp – Schwern

Cuestiones relacionadas