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

C Discussion :

Dll manquante avec pthread lib


Sujet :

C

  1. #1
    Membre averti Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Points : 444
    Points
    444
    Par défaut Dll manquante avec pthread lib
    Bonjour,

    J'ai developé un code avec la lib pthread sous windows et gcc 4.4.0
    J'ai inclu au link les libraries libpthread.a & libpthreadGC2-static.a & libpthreadGCE2.a et malgré cela si je vais sur une machine sans installation de gcc ou posx j'obtient qu'il me manque une dll : pthreadGC2.dll

    Je ne comprend pas bien pourquoi. Si quelqu'un a déjà eu ce probléme

    Merci d'avance

  2. #2
    Membre confirmé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 096
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 096
    Points : 633
    Points
    633
    Par défaut
    Citation Envoyé par uriotcea Voir le message
    Bonjour,

    J'ai developé un code avec la lib pthread sous windows et gcc 4.4.0
    J'ai inclu au link les libraries libpthread.a & libpthreadGC2-static.a & libpthreadGCE2.a et malgré cela si je vais sur une machine sans installation de gcc ou posx j'obtient qu'il me manque une dll : pthreadGC2.dll

    Je ne comprend pas bien pourquoi. Si quelqu'un a déjà eu ce probléme

    Merci d'avance
    Je ne comprend pas...
    Tu dis que quand tu mets ton executable sur une autre machine, il te dit qu'il te manque 'pthreadGC2.dll' ?

    Mais c'est normal. aucun rapport avec gcc ou posx.
    Dans le package que tu as du telecharger pour compiler sous windows il y a les dll adéquats.

  3. #3
    Membre averti Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Points : 444
    Points
    444
    Par défaut
    Oui biensur mais ayant linké en static les avec *.a pourquoi faut-ils encore une dll, a quoi servent donc les *.a ?

  4. #4
    Membre confirmé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 096
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 096
    Points : 633
    Points
    633
    Par défaut
    Citation Envoyé par uriotcea Voir le message
    Oui biensur mais ayant linké en static les avec *.a pourquoi faut-ils encore une dll, a quoi servent donc les *.a ?
    Le *.a fait le lien entre ton programme et la Dll.

  5. #5
    Membre averti Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Points : 444
    Points
    444
    Par défaut
    Là je ne pense pas!
    Ce sont réellement des librairies, pour preuve elles font pratiquement la même taille que les dll correspondantes.
    De plus je fais ca tout le temps par exemple avec Qt je link en static avec les *.a evitant ainsi d'avoir à distribuer les dll

  6. #6
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par uriotcea Voir le message
    Là je ne pense pas!
    Ce sont réellement des librairies, pour preuve elles font pratiquement la même taille que les dll correspondantes.
    Les deux autres librairies ne possèdent pas la mention "static" dans leur nom, il est donc possible qu'elles lient dynamiquement la troisième.

    Citation Envoyé par uriotcea Voir le message
    De plus je fais ca tout le temps par exemple avec Qt je link en static avec les *.a evitant ainsi d'avoir à distribuer les dll
    Ce qui, en soi, est quand même plutôt crado, voire irrespectueux de l'utilisateur final... Des dizaines et des dizaines de mégas de dur plombés pour chaque petit outil existant, sans compter la RAM qui s'épuise à force de ne PAS avoir de partage des librairies (ben oui, une statique en dix exemplaires dans la RAM, c'est dix fois la taille...), c'est pas franchement une bonne démarche je trouve. Pour moi, afin de t'éviter dix minutes de packaging et de tests de dépendances, tu plombes les machines des utilisateurs, c'est là qu'est l'irrespect.

    Si vraiment tu veux réduire les soucis de l'utilisateur, tu distribues l'exécutable et ses DLL, et tu rends l'installation des DLL optionnelles dans ton setup (ou, mieux, tu ne les installe que si tu ne les trouve pas). Si tu veux économiser de la bande passante, ou avoir des setups plus petits, tu distribue les DLL à part, téléchargés à la demande.


    Tu fais comme tu le sens bien sûr, mais me retrouver avec un exécutable de 10 mégas qui me plombe le double en RAM, va vraiment falloir que l'appli soit intéressante... Si c'est un gadget, c'est poubelle direct.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  7. #7
    Membre averti Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Points : 444
    Points
    444
    Par défaut
    Citation Envoyé par Mac LAK Voir le message
    Les deux autres librairies ne possèdent pas la mention "static" dans leur nom, il est donc possible qu'elles lient dynamiquement la troisième..
    Si justement son nom est "libpthreadGC2-static.a". C'est pourquoi je ne comprend pas bien l'utilité de la dll.

    Concernant la taille des executables. C'est une question de phylosophie. Pour ma part je link maintenant tout en static, même sous linux ou j'en ai vraiment mare de toutes ces dépendances complexes qui font que mes codes ne fonctionnent que sur certains systemes et pas d'autre sur certaines versions de gcc par example et pas d'autre sans parler des libgcc, libstdcc++ qui ne sont jamais compatible d'une version à l'autre. Depuis que je link tout en static, plus de soucie. Ok, la taille est plus grosse, mais franchement que sont quelques MOctects de nos jour...

  8. #8
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par uriotcea Voir le message
    Si justement son nom est "libpthreadGC2-static.a". C'est pourquoi je ne comprend pas bien l'utilité de la dll.
    Sauf que tu linkes "libpthread.a" (et non pas une éventuelle "libpthread-static.a"), ainsi que "libpthreadGCE2.a" (au lieu d'une "libpthreadGCE2-static.a")... Je ne connais pas la tripaille interne de ces deux librairies, mais il est fort possible que les versions que tu linkes utilise la version dynamique de "libpthreadGC2"...

    Citation Envoyé par uriotcea Voir le message
    Concernant la taille des executables. C'est une question de phylosophie. Pour ma part je link maintenant tout en static, même sous linux ou j'en ai vraiment mare de toutes ces dépendances complexes qui font que mes codes ne fonctionnent que sur certains systemes et pas d'autre sur certaines versions de gcc par example et pas d'autre sans parler des libgcc, libstdcc++ qui ne sont jamais compatible d'une version à l'autre. Depuis que je link tout en static, plus de soucie.
    C'est pour ça que l'on fait du packaging : on distribue les runtimes en même temps que le programme, et on distribue les librairies en parallèle ou packagées avec l'application, de préférence via le package de l'éditeur afin d'assurer une installation la plus propre possible... Sous Windows, tu as bien sûr InnoSetup qui t'aidera à faire ça. Sous Linux, je pense qu'un bon RPM avec les dépendances correctes reste l'idéal.

    Si tes programmes sont aussi "complexes" à rendre utilisables partout, tu as deux possibilités :
    • Ils utilisent trop de librairies, qui ne sont pas forcément utilisées dans leur mode idéal.
      Si tu utilises une librairie pour une seule fonction, un link statique est avantageux. Si tu t'appuie massivement dessus, la DLL est plutôt de rigueur.
    • Tu n'as pas les bons outils pour obtenir les dépendances de tes exécutables, ce qui rend la chose "aléatoire" au mieux, mais hélas pas rationnelle. Tu peux voir avec Dependancy Walker sous Windows, ou ldd sous Linux (il y a sûrement mieux que ldd toutefois...).


    Citation Envoyé par uriotcea Voir le message
    Ok, la taille est plus grosse, mais franchement que sont quelques MOctects de nos jour...
    Ce que je t'ai expliqué un peu plus haut... La RAM, c'est pas encore le disque dur, ça se remplit bien plus vite. Quand je vois de petits programmes tout juste amusants bouffer 100 Mo de RAM à eux tout seuls à cause de liaisons 100% statiques, il y a de quoi trouver ça "abusé", surtout quand ils pourraient n'en consommer que 5 ou 10 en utilisant des DLL déjà chargées sur le système par d'autres applications...
    Comme je te le disais, pour ma part, je mets ce genre de programme direct à la poubelle, quel que soit l'intérêt du programme en question.

    Record personnel pour l'instant : une application de post-it sur le bureau Windows, dont j'ai oublié le nom hélas, et qui consommait plus de 600 Mo de RAM à elle toute seule...
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  9. #9
    Membre averti Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Points : 444
    Points
    444
    Par défaut
    Ok, je suis sensible à tes arguments, mais en fait mon programme en l'occurence consomme quelquechose comme 1.5 Goctet

    Malgré tout si je suis toujours à la recherche d'une méthode pour linker en static la lib pthread, si quelqu'un à une suggestion

  10. #10
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par uriotcea Voir le message
    Ok, je suis sensible à tes arguments, mais en fait mon programme en l'occurence consomme quelquechose comme 1.5 Goctet
    Et via un link dynamique, il occupe combien ? Bon, blague à part, c'est plutôt énorme, je suis assez surpris du volume... C'est à peu près ce que consomme World of Warcraft, tu sais ?

    Citation Envoyé par uriotcea Voir le message
    Malgré tout si je suis toujours à la recherche d'une méthode pour linker en static la lib pthread, si quelqu'un à une suggestion
    Tu n'as aucune autre librairie ".a" disponible, dans le répertoire lib ? Pas de version statique des librairies de base ? Pas de librairies tierces (genre QT) qui linkeraient par défaut la version dynamique ?

    Si tu n'as aucune autre librairie explicitement définie comme statique à linker, il faudrait peut-être aller voir du côté des dépendances binaires...

    Essaie de faire un "ldd -v", ou un Dependancy Walker, sur ton programme afin de voir si tu as une dépendance secondaire vers cette DLL...
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  11. #11
    Membre averti Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Points : 444
    Points
    444
    Par défaut
    Dependancy Walker trouve une dependance directe à cette fameuse dll pthreadGC2
    Je crois qu'il faut recompiler la lib pthread en static, mais là galére visiblement MinGW ne semble pas suffire, il faudrait quelque chose appelé PERL. J'avoue ignorer ce que c'est au just

  12. #12
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par uriotcea Voir le message
    Dependancy Walker trouve une dependance directe à cette fameuse dll pthreadGC2
    Bon, c'est déjà une bonne nouvelle, tu n'es donc pas fou !! Si la dépendance est directe, c'est soit qu'elle est faite dans TON code/link (j'ai des doutes, d'après tes messages précédents), soit dans des librairies statiques linkées (beaucoup plus probable).

    Citation Envoyé par uriotcea Voir le message
    Je crois qu'il faut recompiler la lib pthread en static, mais là galére visiblement MinGW ne semble pas suffire, il faudrait quelque chose appelé PERL. J'avoue ignorer ce que c'est au just
    Perl est un langage, tu peux trouver un interpréteur sous Windows, et sans difficultés de déploiement, normalement... Au pire, si tu l'as déjà, sous Cygwin si celui "natif" Windows te pose des soucis, mais il n'y a pas de raisons.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  13. #13
    Membre averti Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Points : 444
    Points
    444
    Par défaut
    Ok, j'ai installé un truc nomé "strawbrerry" qui est un perl pour windows et quand j'excute le make file spécifié dans la doc de pthread j'ai les massage suivant comme si perl n'était pas installé...

    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
     
     
    D:\temp\pthreads>mingw32-make clean GC-static
    rm -f *~
    process_begin: CreateProcess(NULL, rm -f *~, ...) failed.
    make (e=2): Le fichier spÚcifiÚ est introuvable.
    mingw32-make: [clean] Error 2 (ignored)
    rm -f *.i
    process_begin: CreateProcess(NULL, rm -f *.i, ...) failed.
    make (e=2): Le fichier spÚcifiÚ est introuvable.
    mingw32-make: [clean] Error 2 (ignored)
    rm -f *.o
    process_begin: CreateProcess(NULL, rm -f *.o, ...) failed.
    make (e=2): Le fichier spÚcifiÚ est introuvable.
    mingw32-make: [clean] Error 2 (ignored)
    rm -f *.obj
    process_begin: CreateProcess(NULL, rm -f *.obj, ...) failed.
    make (e=2): Le fichier spÚcifiÚ est introuvable.
    mingw32-make: [clean] Error 2 (ignored)
    rm -f *.exe
    process_begin: CreateProcess(NULL, rm -f *.exe, ...) failed.
    make (e=2): Le fichier spÚcifiÚ est introuvable.
    mingw32-make: [clean] Error 2 (ignored)
    rm -f pthread.def
    process_begin: CreateProcess(NULL, rm -f pthread.def, ...) failed.
    make (e=2): Le fichier spÚcifiÚ est introuvable.
    mingw32-make: [clean] Error 2 (ignored)
    mingw32-make XOPT="-DPTW32_BUILD_INLINED -DPTW32_STATIC_LIB" CLEANUP=-D__CLEANUP
    _C XC_FLAGS=" " OBJ="pthread.o version.o" libpthreadGC2.stamp
    mingw32-make[1]: Entering directory `D:/temp/pthreads'
    rm -f libpthreadGC2.a
    process_begin: CreateProcess(NULL, rm -f libpthreadGC2.a, ...) failed.
    make (e=2): Le fichier spÚcifiÚ est introuvable.
    mingw32-make[1]: *** [libpthreadGC2.stamp] Error 2
    mingw32-make[1]: Leaving directory `D:/temp/pthreads'
    mingw32-make: *** [GC-static] Error 2

  14. #14
    Membre averti Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Points : 444
    Points
    444
    Par défaut
    Ok j'ai enfin réussi
    En fait Perl ne sert à rien, just ajouter rm.exe dans les executables de MINGW, je supose que c'est l'interpreteur de commandes.
    Ensuite recompiler la lib pthread en static, avec 'mingw32 clean GC-static'
    Ensuite ajouter cette lib aux liens suivit de 'libws2_32.a' (dans cet ordre là)
    Ajouter l'option "PTW32_STATIC_LIB" dans les includes
    Et pour finir ne pas oublier d'appeler la fonction
    'pthread_win32_process_attach_np()' avant le premier appel d'une routine pthread
    Et là tout marche correctement dans dll

    Merci pour votre aide

  15. #15
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par uriotcea Voir le message
    just ajouter rm.exe dans les executables de MINGW, je supose que c'est l'interpreteur de commandes.
    Non, c'est l'équivalent de "del" sous Unix.

    Citation Envoyé par uriotcea Voir le message
    Et là tout marche correctement dans dll

    Merci pour votre aide
    Content pour toi. Bonne continuation !
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  16. #16
    Membre averti Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Points : 444
    Points
    444
    Par défaut
    L'equivalent de del !!!
    Oui tu as probablement raison, mais c'est trés étrange que ca ai bloqué sur ca. Parfois il y a des choses qui m'échappe totalement!!

    Maintenant, j'ai posté un neauveau topic parce que mon calcul multitreaded me donne satisfaction sous windows, mais je n'obtient vraiment pas les performances attendues sous linux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.2] Extension php_mbstring.dll :: lib ieshims.dll manquante
    Par Fred_Bogota dans le forum Langage
    Réponses: 2
    Dernier message: 30/09/2009, 21h22
  2. charger une dll avec un .lib
    Par Nehmé dans le forum Visual C++
    Réponses: 13
    Dernier message: 26/08/2009, 14h26
  3. Compatibilité avec d'autres machines - dll manquantes
    Par Ryuzaki dans le forum Windows
    Réponses: 2
    Dernier message: 13/03/2008, 19h08
  4. Réponses: 2
    Dernier message: 09/01/2007, 11h29
  5. pb avec la lib jpeg et la jpeg62.dll
    Par Ayla_21 dans le forum MFC
    Réponses: 5
    Dernier message: 28/10/2005, 12h02

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