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

Modules Perl Discussion :

Erreur de compilation en utilisant la librairie partagée de MySQL (fPIC)


Sujet :

Modules Perl

  1. #1
    Inscrit
    Profil pro
    aaaaa
    Inscrit en
    Novembre 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : aaaaa

    Informations forums :
    Inscription : Novembre 2006
    Messages : 178
    Points : 70
    Points
    70
    Par défaut Erreur de compilation en utilisant la librairie partagée de MySQL (fPIC)
    Bonjour,

    Je cherche à compiler un module Perl (DBIx MyParse) qui utilise la librairie MySQL. J'obtiens l'erreur suivante lors du "make install" de ce module :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    /usr/bin/ld: /usr/src/mysql-5.0.45//libmysqld/libmysqld.a(my_thr_init.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
    /usr/src/mysql-5.0.45//libmysqld/libmysqld.a: could not read symbols: Bad value
    Alors, j'ai cherché un peu partout. J'ai trouvé notamment ce topic où la personne rencontrait un problème similaire. Problème : en ajoutant la fameuse option "-fPIC", pas mieux !

    Comme je ne veux pas me risquer à modifier le Makefile de MySQL, j'ai ajouté l'option dans le configure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ./configure --with-embedded-server --enable-shared --with-pic
    Faut-il faire autre chose que ça ? La version de MySQL que j'utilise est la 5.0.45 .

    Merci d'avance si vous avez des idées

  2. #2
    Inscrit
    Profil pro
    aaaaa
    Inscrit en
    Novembre 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : aaaaa

    Informations forums :
    Inscription : Novembre 2006
    Messages : 178
    Points : 70
    Points
    70
    Par défaut
    Bonjour,

    Je me permets de remonter ce topic car j'ai repris le sujet et j'ai compris quelque chose qui m'avait échappé : en fait le problème est que les 2 projets (MySQL + le module Perl) doivent être compilés avec fPIC pour pouvoir interagir ? Quelqu'un connaît-il ces mécanismes-là ? Du coup j'ai changé les arguments de ./configure pour MySQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ./configure --with-embedded-server --enable-shared
    ... ainsi que le Makefile.PL du module, qui si j'ai bien compris permet de générer un Makefile "classique" : j'ai changé la valeur de CCFLAGS qui dans Makefile.PL était rempli avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    my $ccflags = `grep "^CXXFLAGS =" $makefile_path`;
     
    $ccflags =~ s{^CXXFLAGS = }{}sio;
    $ccflags =~ s{[\r\n\t]}{}sio;
    $ccflags .= " -DNO_EMBEDDED_ACCESS_CHECKS ";
    et j'ai simplement (naïvement) ajouté l'option fPIC dedans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    my $ccflags = `grep "^CXXFLAGS =" $makefile_path`;
     
    $ccflags =~ s{^CXXFLAGS = }{}sio;
    $ccflags =~ s{[\r\n\t]}{}sio;
    $ccflags .= " -fPIC -DNO_EMBEDDED_ACCESS_CHECKS ";
    .

    Le Makefile est bien généré quand je lance , et ensuite quand je lance je vois bien mon option -fPIC qui apparait dans la log ; mais l'erreur est toujours là comme avant.

    A défaut d'une solution, quelqu'un peut-il m'expliquer d'où vient le problème puisque j'ai mis l'option -fPIC pour les deux ?


    Merci d'avance !

Discussions similaires

  1. Compilation en utilisant des librairies
    Par Manankasina dans le forum Langage
    Réponses: 2
    Dernier message: 01/10/2013, 17h08
  2. utiliser une librairie partager 32bits sur python 64
    Par the-atlantis dans le forum Interfaçage autre langage
    Réponses: 3
    Dernier message: 26/10/2011, 13h01
  3. Réponses: 2
    Dernier message: 15/10/2008, 10h18
  4. Réponses: 11
    Dernier message: 10/06/2008, 15h22
  5. [VB6] erreur de compilation:utilisation incorrecte du mot clé New
    Par fouf_01 dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 17/05/2006, 16h22

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