Salut,
Nouvel article dans les cours et tutoriel Perl : Créer un exécutable à partir de sources Perl
Vos commentaires, corrections et remarques sont les bienvenues.
Merci !
Salut,
Nouvel article dans les cours et tutoriel Perl : Créer un exécutable à partir de sources Perl
Vos commentaires, corrections et remarques sont les bienvenues.
Merci !
- Les meilleurs cours et tutoriels Perl et Perl 6 pour vous former ;
- FAQ Perl, Perl 6 et Perl/Tk d'entraide ;
- Les news sur la rubrique Perl ;
- S'abonner au compte Twitter de la rubrique Perl ;
- Mes tutoriels developpez.com.
Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !
Très intéressant. Une idée de comment ça se passe sous strawberry avec PAR ?
Je pense que mon article pourrait s'utiliser également pour StrawberryPerl si ce dernier utilise ppm. Mais je n'ai pas testé. Peux-tu me dire s'il y a le gestionnaire ppm sous Strawberry ?
- Les meilleurs cours et tutoriels Perl et Perl 6 pour vous former ;
- FAQ Perl, Perl 6 et Perl/Tk d'entraide ;
- Les news sur la rubrique Perl ;
- S'abonner au compte Twitter de la rubrique Perl ;
- Mes tutoriels developpez.com.
Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !
Bonjour,
Pour mon application Kandela j'ai utilisé Strawberry, et ça marche sans problème.
(J'ai pas de Windows vierge pour retester, mais j'ai pas l'impression d'avoir du faire autre chose)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 cpan install PAR::Packer pp -o kandela.exe kandela.pl
PS : C'est chouette Packer sans balise code "cpan install PAR:acker"
pour Strawberry.
Sinon pour PAR::Packer sans balise, il faut utiliser la balise [noparse]PAR::Packer[/noparse].
- Les meilleurs cours et tutoriels Perl et Perl 6 pour vous former ;
- FAQ Perl, Perl 6 et Perl/Tk d'entraide ;
- Les news sur la rubrique Perl ;
- S'abonner au compte Twitter de la rubrique Perl ;
- Mes tutoriels developpez.com.
Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !
Rien de bien constructif à dire, juste : merci beaucoup! ça marche impeccable (Windows 7 64-bits)
Bonjour,
Merci pour ce tutoriels Perl. il mériterai néanmoins quelques mis a jours (lien nmake faut par example).
J'ai réussit a compiler avec :
puis :
Code : Sélectionner tout - Visualiser dans une fenêtre à part cpan> install PAR::Packer
Qui a l'air de fonctionner.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 c:\>pp -o prog.exe "c:\prog\connector.pl"
par contre, lors de l'execution, j'ai ce message d'erreur :
je précise que, dans la même commande msdos, "perl prog.pl" fonctionne correctement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 c:\>prog.exe The locale codeset (cp1252) isn't one that perl can decode, stopped at Encode/Locale.pm line 87. Compilation failed in require at LWP/UserAgent.pm line 975. Compilation failed in require at script/prog.pl line 11. BEGIN failed--compilation aborted at script/prog.pl line 11.
Merci d'avance pour l'aide
Antoine
Bonjour,
J'ai reinstallé Strawberry sur un XP SP3 vierge, et je n'ai pas eu de problème avec StrawBerry, par contre si on fait un
il va être en erreur. Il y a un patch de StrawBerrycpan install PAR::Packer
http://strawberryperl.com/pack age/k...patched.tar.gz
On detar, on va dans le répertoire, et
On a bien 3 erreurs au "test" mais ça fonctionne quand même.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 dmake dmake test dmake install
Bonjour,
Très bon article.
J'ai pu convertir un .pl en .exe avec PAR, grâce à ton travail.
Merci d'avoir tapé un code complet pour l'installation !
Travail très utile, bravo.
Le tutoriel a été mis à jour, notamment le programme permettant d'installer PAR::Packer dans le chapitre « *Solution miracle ». Le programme peut être lancé sous Windows avec ActivePerl ou Strawberry Perl, ou sous Linux/Mac OS. En fonction de l'environnement, il lance les commandes adéquates. J'ai introduit également l'installation de modules Tk afin de pouvoir utiliser l'utilitaire tkpp.
Il y a aussi deux options de pp (ou tkpp) qui n'existent plus.
Bonne utilisation et n'hésitez pas à me faire un retour si vous avez un souci.
- Les meilleurs cours et tutoriels Perl et Perl 6 pour vous former ;
- FAQ Perl, Perl 6 et Perl/Tk d'entraide ;
- Les news sur la rubrique Perl ;
- S'abonner au compte Twitter de la rubrique Perl ;
- Mes tutoriels developpez.com.
Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !
MERCI djibril !
Super, juste un pb avec l'interface graphique tkpp
Jusqu'à ce jour je n'ai pas eu l'utilité de générer un exécutable, mais ma curiosité était trop grande, donc :
Sur Strawberry j'ai simplement fait un cpan install PAR:acker passé comme une lettre à la poste
En ligne de commande aucun pb, je réalise des exécutables qui fonctionnent parfaitement de gros pgm.pl contenant, entre autre, des appels à Tk ; Win32::API ; Win32::MediaPlayer...
En lançant l'interface graphique j'ai :
Donc je fais un install de Tk:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 E:\_APPLI\Veille>tkpp You have to install this module : - Tk::Pod [try command : cpan -i Tk::Pod]od qui plante alors que tous les autres install du cpan ont toujours fonctionné jusqu'à présent.
Durant l'installation j'ai un plantage de l'interpréteur Perlavec :
NB : J'ai bien un dmake.exe dans C:\Strawberry\c\bin
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 CPAN: CPAN::SQLite loaded ok (v0.203) Database was generated on Sun, 22 Feb 2015 03:33:31 GMT Running install for module 'Tk::Pod' CPAN: Digest::SHA loaded ok (v5.91) CPAN: Compress::Zlib loaded ok (v2.064) Checksum for C:\STRAWB~1\cpan\sources\authors\id\S\SR\SREZIC\Tk-Pod-0.9942.tar.gz ok CPAN: Archive::Tar loaded ok (v1.96) CPAN: File::Temp loaded ok (v0.2304) CPAN: YAML::XS loaded ok (v0.41) CPAN: Parse::CPAN::Meta loaded ok (v1.4414) CPAN: CPAN::Meta loaded ok (v2.141170) CPAN: Module::CoreList loaded ok (v3.11) Configuring S/SR/SREZIC/Tk-Pod-0.9942.tar.gz with Makefile.PL Checking if your kit is complete... Looks good Generating a dmake-style Makefile Writing Makefile for Tk::Pod Writing MYMETA.yml and MYMETA.json SREZIC/Tk-Pod-0.9942.tar.gz C:\Strawberry\perl\bin\perl.exe Makefile.PL -- OK Running make for S/SR/SREZIC/Tk-Pod-0.9942.tar.gz cp Pod/Cache.pm blib\lib\Tk\Pod\Cache.pm cp Pod/Search.pm blib\lib\Tk\Pod\Search.pm cp Pod/Util.pm blib\lib\Tk\Pod\Util.pm cp Pod/SimpleBridge.pm blib\lib\Tk\Pod\SimpleBridge.pm cp Pod/WWWBrowser.pm blib\lib\Tk\Pod\WWWBrowser.pm cp Pod/Tree.pm blib\lib\Tk\Pod\Tree.pm cp Pod.pm blib\lib\Tk\Pod.pm cp Pod/Search_db.pm blib\lib\Tk\Pod\Search_db.pm cp Pod/FindPods.pm blib\lib\Tk\Pod\FindPods.pm cp More.pm blib\lib\Tk\More.pm cp Pod/Styles.pm blib\lib\Tk\Pod\Styles.pm cp Pod/Text.pm blib\lib\Tk\Pod\Text.pm cp Pod_usage.pod blib\lib\Tk\Pod_usage.pod C:\Strawberry\perl\bin\perl.exe -MExtUtils::Command -e cp -- tkpod blib\script\tkpod pl2bat.bat blib\script\tkpod C:\Strawberry\perl\bin\perl.exe -MExtUtils::Command -e cp -- tkmore blib\script\tkmore pl2bat.bat blib\script\tkmore SREZIC/Tk-Pod-0.9942.tar.gz C:\STRAWB~1\c\bin\dmake.exe -- OK Running make test C:\Strawberry\perl\bin\perl.exe "-It" "-MTkTest" "-e" "check_display_test_harness(0, 'blib\lib', 'blib\arch')" t/*.t t/basic.t ......... ok t/cmdline.t ....... skipped: not on Windows t/more.t .......... ok t/optionalmods.t .. skipped: no Test::More and/or Devel::Hide modules t/pods.t .......... ok t/podtree.t ....... Dubious, test returned 255 (wstat 65280, 0xff00) All 5 subtests passed t/subclass.t ...... ok Test Summary Report ------------------- t/podtree.t (Wstat: 65280 Tests: 5 Failed: 0) Non-zero exit status: 255 Files=7, Tests=72, 15 wallclock secs ( 0.06 usr + 0.05 sys = 0.11 CPU) Result: FAIL SREZIC/Tk-Pod-0.9942.tar.gz C:\STRAWB~1\c\bin\dmake.exe test -- NOT OK //hint// to see the cpan-testers results for installing this module, try: reports SREZIC/Tk-Pod-0.9942.tar.gz Stopping: 'install' failed for 'Tk::Pod'.
Sinon en ligne de commande ça me va très bien !
MERCI !
[EDIT 08:05]
Pour info j'ai téléchargé Tk-Pod-0.9942-PPM520.tar.gz sur Bribes
Le tar -zxvf ne donne qu'un répertoire C:\Strawberry\Patch_et_Modules_TARGZ\blib\lib\Tk
J'ai copié ce Tk dans C:\Strawberry\perl\lib
Tkpp fonctionne !
- Fonctionne correctement sur ton test.pl, le test.exe s'exécute correctement
- Ne Fonctionne pas sur un gros Arabe.pl le Arabe.exe est bien généré mais ne s'exécute pas, il semble qu'il n'ait pas trouvé tous les modules ??? (Descripteur invalide dans console tkpp)
Le log en verbose 3 ne précise rien :
Bon rien de terrible pour moi, la ligne de commande qui génère l'exécutable correctement me suffit !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 C:\Strawberry\perl\site\bin\pp.bat: Packing E:\_APPLI\Arabe\Arabe.pl ... TROP LONG !
C'était juste pour faire remonter l'info...
Encore MERCI !
Merci pour ce retour, je vais revérifier cela et tester afin d'améliorer la processus d'installation.
- Les meilleurs cours et tutoriels Perl et Perl 6 pour vous former ;
- FAQ Perl, Perl 6 et Perl/Tk d'entraide ;
- Les news sur la rubrique Perl ;
- S'abonner au compte Twitter de la rubrique Perl ;
- Mes tutoriels developpez.com.
Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !
Pour moi l'installation est impeccable !
Il y a juste une différence de fonctionnement suivant que j'utilise tkpp ou pp
Et en fait je viens de trouver, en partie du moins :
J'ai un module perso TestModule.pm dans le répertoire qui contient le source.pl
Quand je lance pp dans le répertoire courant, aucun pb il trouve le module, l'inclut dans le .exe, tout est OK
Quand je lance tkpp toujours dans le répertoire courant, il ne trouve pas le module perso, bien que je l'ajoute dans la liste et même si j'ajoute le répertoire et le fichier.pm dans "Add Files, Directories and shared librairies"...
Au lancement dans une console ouverte j'ai bien l'ano :
Si je lance la commande générée par tkpp dans le répertoire courant c'est OK !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 E:\_APPLI\Arabe>arabe Can't locate TestModule.pm in @INC (you may need to install the TestModule module) (@INC c ontains: CODE(0x33777d0) C:\Users\Michel\AppData\Local\Temp\par-4d696368656c\cache-8afa7bd 4f480807e95d7330beb843435a87abfdd\inc\lib C:\Users\Michel\AppData\Local\Temp\par-4d6963686 56c\cache-8afa7bd4f480807e95d7330beb843435a87abfdd\inc CODE(0x3012ae8) CODE(0x3012f98)) at script/Arabe.pl line 19. BEGIN failed--compilation aborted at script/Arabe.pl line 19.
Code : Sélectionner tout - Visualiser dans une fenêtre à part E:\_APPLI\Arabe>C:\Strawberry\perl\bin\perl.exe "C:\Strawberry\perl\site\bin\pp.bat" --output="E:\_APPLI\Arabe\Arabe.exe" --compress 6 --bundle "E:\_APPLI\Arabe\Arabe.pl"![]()
Partager