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

Dev-C++ Discussion :

Librairie Regex - Linker error


Sujet :

Dev-C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 15
    Par défaut Librairie Regex - Linker error
    Bonjour,

    j'essaye d'utiliser la librairie GNU regex. Pour cela, j'ai telecharge les sources et j'ai compile la lib statique sous Dev-c++ afin de creer mon libregex.a

    Le probleme est que je n'arrive pas a le linker a mon projet.
    Dans les options du projet, j'ai mis :
    Parametres > Editeurs de liens > -lregex
    Repertoires > Repertoires Biblio : le dossier ou se trouve le libregex.a

    Mais j'ai toujours l erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Linker error] undefined reference to `regcomp(rx_posix_regex *, char const *, int)'
    Ai-je oublie quelquechose ? Merci d'avance

    PS : j ai aussi essaye avec le devpack Rx http://devpaks.org/details.php?devpak=67 mais j ai la meme erreur

  2. #2
    HRS
    HRS est déconnecté
    Membre chevronné
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    678
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 678
    Par défaut
    votre projet est-il C ou C++ ?

    car si libregex.a a été compilé avec gcc et que votre projet compile avec
    g++, l'edition de liens risque de ne pas se faire

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 15
    Par défaut
    Mon projet est bien en C++.

    Je ne peux pas utiliser une librairie statique C avec une application C++ ? Ou alors serait-ce parce que ce n'est pas le meme compilateur : GCC et G++ ?

    Comment puis-je faire alors ?

  4. #4
    HRS
    HRS est déconnecté
    Membre chevronné
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    678
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 678
    Par défaut
    si, une appli C++ peut utiliser une library statique C à condition que le .h
    contenant les protos soit sous la forme suivante

    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
     
    #if !defined (MON_HEADER_H)
    #define MON_HEADER_H
     
    #ifdef __cplusplus
    extern "C" {
    #endif
     
    /*
     
    corps de mon_header.h
     
     
    */
     
    #ifdef __cplusplus
    }
    #endif
     
    #endif

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 15
    Par défaut
    Le linker ne me sort plus d'erreur mais par contre j'ai l'impression que j'ai du mal compiler la lib, regcomp me sort a chaque fois une erreur.

    J'ai compile la lib simplement en creant un projet sous Dev-cpp et sans utiliser le makefile.in donne avec la lib. J'ai eu des warnings comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    passing arg 1 of `bcopy' from incompatible pointer type
    Comment puis-je utiliser le makefile.in et le configure.in de la lib sous Dev-cpp ?

    Pour l'instant, j'ai installe Cygwin pour essayer de le compiler, mais je suis un peu perdu.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 15
    Par défaut
    Bon au final, j'ai recuperer une version deja compile de la librairie et j ai modifie le .h afin de l'utiliser en c++.

    On dirait que ca marche.
    Merci de m'avoir fait pense a la balise __cplusplus.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 36
    Par défaut
    Bon, je fais un méga up de ce topic, bien que n'utilise pas la bibliothèque Regex j'ai le même message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Linker error] undefined reference to `Legumes(std::basic_fstream<char, std::char_traits<char> >&, std::string*, std::string)' ant extern "C"
    J'ai biensur suivit le conseil en rajoutant extern "C" et je me retrouve avec un message assez similaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Linker error] undefined reference to `Legumes'
    Sinon je n'ai pas fais de .h, j'ai déclaré directement mes fonctions au dessus du main et je les ai définis dans le même programme (mais ça change rien ça).
    et j'utilise les bibliothèques:
    iostream, fstream, string.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/06/2007, 12h34
  2. [Qt4] Linker error (vtable)
    Par titus55 dans le forum Qt
    Réponses: 7
    Dernier message: 23/05/2007, 10h04
  3. Réponses: 17
    Dernier message: 25/10/2005, 10h09
  4. Linker error :^/
    Par Ekinoks dans le forum OpenGL
    Réponses: 15
    Dernier message: 05/09/2004, 14h18
  5. [Kylix] probleme (LINKER ERROR)
    Par subzero82 dans le forum EDI
    Réponses: 2
    Dernier message: 14/05/2004, 19h28

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