IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Créer un exécutable à partir de sources Perl [Tutoriel]


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut Créer un exécutable à partir de sources Perl
    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 !

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Par défaut
    Très intéressant. Une idée de comment ça se passe sous strawberry avec PAR ?

  3. #3
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    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 ?

  4. #4
    Membre confirmé

    Homme Profil pro
    Statisticien
    Inscrit en
    Novembre 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Novembre 2010
    Messages : 122
    Par défaut
    Bonjour,

    Pour mon application Kandela j'ai utilisé Strawberry, et ça marche sans problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cpan install PAR::Packer
    pp -o kandela.exe kandela.pl
    (J'ai pas de Windows vierge pour retester, mais j'ai pas l'impression d'avoir du faire autre chose)

    PS : C'est chouette Packer sans balise code "cpan install PAR:acker"

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    pour Strawberry.

    Sinon pour PAR::Packer sans balise, il faut utiliser la balise [noparse]PAR::Packer[/noparse].

  6. #6
    Membre éclairé
    Femme Profil pro
    Ingénieur informatique scientifique
    Inscrit en
    Mai 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique scientifique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 313
    Par défaut
    Rien de bien constructif à dire, juste : merci beaucoup! ça marche impeccable (Windows 7 64-bits)

  7. #7
    Invité de passage
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1
    Par défaut
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cpan> install PAR::Packer
    puis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    c:\>pp -o prog.exe "c:\prog\connector.pl"
    Qui a l'air de fonctionner.

    par contre, lors de l'execution, j'ai ce message d'erreur :
    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.
    je précise que, dans la même commande msdos, "perl prog.pl" fonctionne correctement

    Merci d'avance pour l'aide

    Antoine

  8. #8
    Membre confirmé

    Homme Profil pro
    Statisticien
    Inscrit en
    Novembre 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Novembre 2010
    Messages : 122
    Par défaut
    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
    cpan install PAR::Packer
    il va être en erreur. Il y a un patch de StrawBerry
    http://strawberryperl.com/pack age/k...patched.tar.gz
    On detar, on va dans le répertoire, et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     dmake
     dmake test 
     dmake install
    On a bien 3 erreurs au "test" mais ça fonctionne quand même.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 3
    Par défaut
    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.

  10. #10
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    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.

  11. #11
    Membre Expert Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 442
    Par défaut
    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 :
    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]
    Donc je fais un install de Tk: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 Perl avec :

    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'.
    NB : J'ai bien un dmake.exe dans C:\Strawberry\c\bin

    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 :
    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 !
    Bon rien de terrible pour moi, la ligne de commande qui génère l'exécutable correctement me suffit !
    C'était juste pour faire remonter l'info...
    Encore MERCI !

  12. #12
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Merci pour ce retour, je vais revérifier cela et tester afin d'améliorer la processus d'installation.

  13. #13
    Membre Expert Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 442
    Par défaut
    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 :
    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.
    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
    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"

Discussions similaires

  1. Réponses: 11
    Dernier message: 03/06/2014, 13h46
  2. Créer un projet à partir de sources
    Par laclac dans le forum Débuter
    Réponses: 8
    Dernier message: 03/12/2008, 01h11
  3. créer un projet à partir de source sur une autre partition
    Par julien.63 dans le forum Eclipse PHP
    Réponses: 0
    Dernier message: 22/08/2007, 15h28
  4. [Maven2] Créer un jar à partir des sources
    Par Sniper37 dans le forum Maven
    Réponses: 3
    Dernier message: 25/08/2006, 14h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo