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 :

Compilation de perl sous windows


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 71
    Points : 54
    Points
    54
    Par défaut Compilation de perl sous windows
    Bonjour,
    J'utilisais un logiciel sourceforge (xmltv.ex) qui permer de lire, décoder des pages web puis mettre en forme un fichier à la norme xmltv les programmes tv français voire d'autre pays.
    Depuis quelque mois la personne en charge de maintenir la partie française de ce logiciel ne dispose plus du temps nécessaire et a donc abandonné! D'autres développeurs ont repris le flambeau du développement mais pas de la liaison avec sourceforge qui permettait non seulement de diffuser la version interprétée Perl mais aussi un .exe pour windows.

    J'ai donc chargé ActivePerl, C++, dmake, le gestionnaire de librairie Tortoise, downloadé l'appli (xmltv) et le générateur d'éxecutable PDK d'ActiveState, fin des présentations!

    Première manip, recompiler l'ancienne version
    Réussi, elle contient un module de collecte des pages html s'appellant tv_grab_fr dont le site a disparu et qui nous oblige à le réécrire pour un autre site et à publier une autre version.

    Deuxième manip,
    Installation du nouveau module tv_grab_fr par COUPER-COLLER à la place de l'ancien dans le repository de Tortoise, nmake distclean, makefile.pl, nmake, nmake xmltv.exe,
    deux modules sont déclarés manquants lors de cette compil

    Toisième manip:
    Le module manquant Encode/Guess est installé par cpan, la compilation se passe bien le code est généré, parfait semblet'il!

    Quatrième manip:
    A l'éxécution de ce code une erreur apparait:

    Can't locate Encode/Guess.pm in @INC <@INC contains : C:\DOCUME~1\tv\LOCALS~1\Temp\pdk-tv-1240\ C:BiBoo at <eval 139> line 8 <DATA> line 855

    tv est le nom de l'utilisateur xp

    Je n'ai pas le sentiment que le nouveau code tv_grab_fr (nouveau module coupé-collé ajouté) soit en cause, il fonctionne en interprétatif.

    Le module Encode/Guess est bien en place avec les autres (20 ont été ajoutés) erreur avec Tortoise, d'utilisation du compilo de code Pearl?

    L'un d'entre vous aurait'il une piste?

    Merci à vous tous et A+

    PS:Ce directory C:\Documents and Settings\tv\Local Settings\Temp\pdk-tv a été choisi par défaut lors de l'installation de Perl avec le camelpack. Peut-on choisir le nom ou se rangent les modules et comment le paramétrer?

  2. #2
    Membre confirmé Avatar de Beniou
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 357
    Points : 515
    Points
    515
    Par défaut
    Quand tu dis que le module est bien en place avec les autres : cela veut dire qu'il se trouve dans ce répertoire (C:\DOCUME~1\tv\LOCALS~1\Temp\pdk-tv-1240\) ?
    Si oui, les autres modules fonctionnent et seulement celui-là crée une erreur ?

    Sinon, tu pourrais rajouter à ton @INC le répertoire où se trouve ton module en question.

    Autre méthode : si ton script se trouve dans ce répertoire et que tu sais comment à partir de celui-ci accéder à ton module (via un chemin relatif) tu pourrais utiliser le module "FindBin" qui te permet d'inclure des modules suivant un chemin à partir du répertoire de ton script (je ne sais pas si j'ai été clair...)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 71
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par Beniou Voir le message
    Quand tu dis que le module est bien en place avec les autres : cela veut dire qu'il se trouve dans ce répertoire (C:\DOCUME~1\tv\LOCALS~1\Temp\pdk-tv-1240\) ?
    Si oui, les autres modules fonctionnent et seulement celui-là crée une erreur ?

    Sinon, tu pourrais rajouter à ton @INC le répertoire où se trouve ton module en question.

    Autre méthode : si ton script se trouve dans ce répertoire et que tu sais comment à partir de celui-ci accéder à ton module (via un chemin relatif) tu pourrais utiliser le module "FindBin" qui te permet d'inclure des modules suivant un chemin à partir du répertoire de ton script (je ne sais pas si j'ai été clair...)
    Bonjour et merci de ta réponse,
    Quelques précisions:

    1 à la compil un warning, je cite
    You may want to explicity give PREFIX to work around MakeMaker bugs.

    ne connaissant pas bien perl, débutant avec ce générateur d'exécutable, je ne comprends rien de ce message, que veut dire PREFIX, comment l'expliciter?

    2 le nmake sur le dossier XMLTV range dans le directory en question 8 dossiers puis à l'exe du code généré (xmltv.exe) 15 autres qui contiennent non pas des scripts mais des librairies,

    3 celle citée manquante Encode.dll est rangée ainsi:

    C:\Documents and Settings\tv\Local Settings\Temp\pdk-tv\070c95386fa1b430b2aa964f00d38823\Encode.dll

    alors que le message d'erreur cite:

    C:\Documents and Settings\tv\Local Settings\Temp\pdk-tv-2184

    Comme toi je piste la déclaration par défaut @INC etc..mais mon incompétence !!!

    Où se place cette déclaration, je netrouve pas le fichier dans lequel elle est censée être placée

    merci de tes lumières

  4. #4
    Membre confirmé Avatar de Beniou
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 357
    Points : 515
    Points
    515
    Par défaut
    Citation Envoyé par ernie74
    1 à la compil un warning, je cite
    You may want to explicity give PREFIX to work around MakeMaker bugs.

    ne connaissant pas bien perl, débutant avec ce générateur d'exécutable, je ne comprends rien de ce message, que veut dire PREFIX, comment l'expliciter?
    Prefix est dans le jargon compilation l'endroit où tu veux que tes modules soient installé. En perl ca peut se faire par exemple par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    perl Makefile.pl PREFIX=mon/repertoire/module
    où mon/repertoire/module est le répertoire en question.


    Citation Envoyé par ernie74
    2 le nmake sur le dossier XMLTV range dans le directory en question 8 dossiers puis à l'exe du code généré (xmltv.exe) 15 autres qui contiennent non pas des scripts mais des librairies,

    3 celle citée manquante Encode.dll est rangée ainsi:

    C:\Documents and Settings\tv\Local Settings\Temp\pdk-tv\070c95386fa1b430b2aa964f00d38823\Encode.dll

    alors que le message d'erreur cite:

    C:\Documents and Settings\tv\Local Settings\Temp\pdk-tv-2184
    Je ne travaille pas sous Windows avec Perl donc là perso je n'en sais rien... Mais bon tu dois bien avoir un Encode.pm quelque part en plus de la dll je pense. Pour le fait qu'il va chercher dans pdk-tv-2184 au lieu de pdk-tv : là je ne vois pas. Il faudrait voir dans le code comment il inclut ton module : ça pourra peut être te mettre sur une piste.


    Citation Envoyé par ernie74
    Comme toi je piste la déclaration par défaut @INC etc..mais mon incompétence !!!

    Où se place cette déclaration, je netrouve pas le fichier dans lequel elle est censée être placée
    Cela peut être fait de plusieurs manières. Quelques unes des piste sont explicitées dans cette faq perl (d'autres choses pourrait aussi t'intéresser dans sur cette page comme par exemple la paragraphe "How do I keep my own module/library directory?")
    http://perldoc.perl.org/perlfaq8.htm...C)-at-runtime?

    Il y a aussi le module FindBin comme je te l'avais dit mais tu ne peut renseigner le chemin vers ton module que depuis le répertoire du script exécuté...

  5. #5
    Membre du Club Avatar de philouelgeek
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 60
    Points : 49
    Points
    49
    Par défaut
    Est-ce que tu cherches à crée à nouveau un %.exe que tout le monde pourraient utiliser ?
    Si oui, moi j'utilise Cava Project que je trouve plus simple d'utilisation que PDK. En plus il gère les modules.
    "Faut voir grand dans la vie, quitte à voyager à travers le temps au volant d'une voiture, autant en choisir une qui ait d'la gueule !"

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 71
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par philouelgeek Voir le message
    Est-ce que tu cherches à crée à nouveau un %.exe que tout le monde pourraient utiliser ?
    Si oui, moi j'utilise Cava Project que je trouve plus simple d'utilisation que PDK. En plus il gère les modules.
    c'est bien cela, générer un exécutable pour XP. j'essaierai ta solution, mais avant il faut que j'arrive au bout de cette compil.

    Merci de la suggestion
    Bye A+

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 71
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par Beniou Voir le message
    Prefix est dans le jargon compilation l'endroit où tu veux que tes modules soient installé. En perl ca peut se faire par exemple par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    perl Makefile.pl PREFIX=mon/repertoire/module
    où mon/repertoire/module est le répertoire en question.




    Je ne travaille pas sous Windows avec Perl donc là perso je n'en sais rien... Mais bon tu dois bien avoir un Encode.pm quelque part en plus de la dll je pense. Pour le fait qu'il va chercher dans pdk-tv-2184 au lieu de pdk-tv : là je ne vois pas. Il faudrait voir dans le code comment il inclut ton module : ça pourra peut être te mettre sur une piste.



    Cela peut être fait de plusieurs manières. Quelques unes des piste sont explicitées dans cette faq perl (d'autres choses pourrait aussi t'intéresser dans sur cette page comme par exemple la paragraphe "How do I keep my own module/library directory?")
    http://perldoc.perl.org/perlfaq8.htm...C)-at-runtime?

    Il y a aussi le module FindBin comme je te l'avais dit mais tu ne peut renseigner le chemin vers ton module que depuis le répertoire du script exécuté...
    Merci de ces solutions, je pars tout de go suivre ces pistes et reviens rendre compte.

    Merci à toi A+

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 71
    Points : 54
    Points
    54
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     perl Makefile.pl PREFIX=mon/repertoire/module
    PREFIX=C:/mon_rep/ ou PREFIX=/mon_rep/ acceptés par activestate mais sans effet! J'ai changé la variable d'environnement dans XP, sans effet!


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://perldoc.perl.org/perlfaq8.html#How-do-I-add-a-directory-to-my-include-path-(@INC)-at-runtime?
    merci j'exploite excellent.

    J'ai deux sources à compiler et deux versions du pdk. Sur cette combinatoire à 4 éléments un des sources fonctionne avec l'une des versions, les trois autre se plantent soit à la compil, soit à l'execution avec la même nature de message. Can't locate .....

    Les erreurs à l'exe ne sont pas identiques pour les deux versions du pdk exemple Encode/Guess pour l'un, File/BSGGlob pour l'autre!

    J'en déduis que ce pdk est un outil capricieux pour initiés!
    Donc pour résumer ECHEC
    Un grand merci pour ton aide A+

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 71
    Points : 54
    Points
    54
    Par défaut
    Bonjour,

    Citation Envoyé par philouelgeek Voir le message
    Si oui, moi j'utilise Cava Project que je trouve plus simple d'utilisation que PDK. En plus il gère les modules.
    J'ai recherché un outil de compilation de Perl dans Cava Project et je n'ai rien trouvé. As tu un lien?

    Merci de ta réponse Bye

  10. #10
    Membre du Club Avatar de philouelgeek
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 60
    Points : 49
    Points
    49
    Par défaut
    je suis vraiment un

    je me suis trompé de soft, en fait c'est cava packager

    Voilà le lien
    http://www.cava.co.uk/

    "Faut voir grand dans la vie, quitte à voyager à travers le temps au volant d'une voiture, autant en choisir une qui ait d'la gueule !"

Discussions similaires

  1. Probleme de compilation d'ETHEREAL sous Windows
    Par beb30 dans le forum Développement
    Réponses: 6
    Dernier message: 16/02/2009, 16h26
  2. Installer Perl sous windows
    Par photorelief dans le forum Langage
    Réponses: 20
    Dernier message: 09/04/2008, 19h05
  3. Programmation Perl sous Windows
    Par ArHacKnIdE dans le forum Langage
    Réponses: 23
    Dernier message: 26/05/2006, 17h22
  4. [langage]parcours fichier txt en perl sous windows
    Par stef74 dans le forum Langage
    Réponses: 12
    Dernier message: 23/06/2005, 16h39
  5. Compiler un code sous windows
    Par KORTA dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 30/09/2003, 16h53

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