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 :

linkage error


Sujet :

C++

  1. #1
    Fry
    Fry est déconnecté
    Membre confirmé Avatar de Fry
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 150
    Par défaut linkage error
    j ai un probleme en utilisant boost::regex avec une librairie allegro qui definit BITMAP qui est deja utilise dans WINGDI.h (appele par regex) donc ca compile pas comme ca (redefinition error)

    mais en rajoutant le flag #define BOOST_REGEX_NO_W32 ca enleve ce probleme (en incluant pas les entetes windows) mais en rajoute un autre :
    main.obj : error LNK2019: unresolved external symbol "void * __cdecl boost::re_detail::get_mem_block(void)" (?get_mem_block@re_detail@boost@@YAPAXXZ) referenced in function "public: __thiscall boost::re_detail::save_state_init::save_state_init(struct boost::re_detail::saved_state * *,struct boost::re_detail::saved_state * *)" (??0save_state_init@re_detail@boost@@QAE@PAPAUsaved_state@12@0@Z)
    main.obj : error LNK2019: unresolved external symbol "void __cdecl boost::re_detail::put_mem_block(void *)" (?put_mem_block@re_detail@boost@@YAXPAX@Z) referenced in function "public: __thiscall boost::re_detail::save_state_init::~save_state_init(void)" (??1save_state_init@re_detail@boost@@QAE@XZ)
    Debug/inventaire.exe : fatal error LNK1120: 2 unresolved externals
    je pense que vu que win32 n est plus utiliser ca declenche une erreur de lien dans boost::re_detail (et pas regex) mais pourquoi (le flag etant active...)?
    et en mettant la definition de BITMAP entre /* */ et en enleve le flage ca compile sans probleme mais c pas une solution


    et je me demandai aussi la difference entre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    std::copy(boost::sregex_token_iterator(ligne.begin(),ligne.end(), re, 0), 
                        boost::sregex_token_iterator(), 
                        std::back_inserter(temp));
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	boost::regex_split(std::back_inserter(temp), ligne, re);

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 11
    Par défaut
    quel compilateur utilise tu?

  3. #3
    Fry
    Fry est déconnecté
    Membre confirmé Avatar de Fry
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 150
    Par défaut
    visual C++ .NET

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 11
    Par défaut
    Désolé mais je ne connais pas trop se compilateur.

  5. #5
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 292
    Par défaut
    Tu lies bien avec la biblio compilée ?

    Sinon, pour la différence entre les deux trucs, il faudrait relire la doc, j'avoue que je ne connais pas par coeur cette lib.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  6. #6
    Fry
    Fry est déconnecté
    Membre confirmé Avatar de Fry
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 150
    Par défaut
    oui je li bien avec la bibliotheque compile (libboost_regex-vc71-mt-sgd-1_31.lib)
    tu veux dire qu il faut recompiler la lib ?
    pourtant j ai compiler toute les version il me semble...

  7. #7
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 292
    Par défaut
    C'était pour être sûr dans la mesure où il ne trouve pas des symbôles qui devraient y être.
    Reste à vérifier que tes options de compilation (MT, Debug, ...) correspondent bien à la biblio utilisée. Mais dans mes souvenirs tu avais déjà réglé ces problèmes.

    Au pire, essaie de voir sur la ML utilisateurs de boost.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 65
    Par défaut
    regex inclut peut-être wingdi.h indirectement (en incluant windows.h par exemple) sans en avoir réellement besoin. Dans ce cas, tu pourrais eviter d'inclure wingdi.h. Je ne connais pas VC++, mais je crois qu'en plaçant ce code au début de ton fichier, ça devrait faire le travail:
    Sinon, vois wingdi.h pour connaître la valeur du #define à placer.

  9. #9
    Fry
    Fry est déconnecté
    Membre confirmé Avatar de Fry
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 150
    Par défaut
    bonne idee j y avait pas pense!
    mais il a fallut enlever:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #define _WINGDI_
    #define _WINUSER_
    #define _PRSHT_H_
    #define _WINSPOOL_
    #define __oleidl_h__
    #define _OLE2_H_
    #define _INC_COMMDLG
    #define _IMM_
    alors j ai copie le fichier et inclut dans le project apres l avoir modifier

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

Discussions similaires

  1. Problème linkage error
    Par pjmorce dans le forum Services Web
    Réponses: 0
    Dernier message: 04/02/2010, 14h42
  2. Réponses: 1
    Dernier message: 10/06/2008, 09h22
  3. jboss classLoader linkage error
    Par filot dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 13/08/2007, 16h14
  4. [Linkage] error LNK2019 sur la creation d'une dll
    Par drcd dans le forum Visual C++
    Réponses: 2
    Dernier message: 23/04/2007, 15h58
  5. [Servlet][EJB Session]Linkage Error probleme
    Par vinceLeBarbare dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 27/06/2006, 08h27

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