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 :

VS 2010 , definition d'un nouvel operateur << et "link error"


Sujet :

C++

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 66
    Points : 50
    Points
    50
    Par défaut VS 2010 , definition d'un nouvel operateur << et "link error"
    Bonjour,

    je développe un projet sous linux et windows. Sous linux tout se passe à merveille et quand j'ai souhaité passer à Windows, l'optimisme est tombé.
    Je butte sur un problème de lien et je n'arrive pas à en trouver la cause.

    Dans une bibliothèque, je définis l'opérateur suivant
    // Global function to allow std::string in LOG_xxx macros
    QTextStream& operator<<(QTextStream& in, const std::string& iString);

    J'arrive à compiler la biblothèque mais dans les bibliothèques ou exécutable l'utilisant, je ne peux pas compiler. Je récupère
    error LNK2019: unresolved external symbol class QTextstream & _cdecl operator<<(class QTextsream &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char> const &)" ...
    c:\xxx.dll : fatal error LNK1120: 1 unresolved external

    J'ai parcouru pas mal de forums et j'ai trouvé plusieurs propositions indiquant que je pouvais redéfinir cet operateur hors de la classe mais je n'ai pas trouvé d'explication au pourquoi de ce symbole non resolu.

    Si quelqu'un a une idée de la cause (comme je l'utilise un peu de partout dans mon projet le remplacer me prendrait beaucoup de temps et ce serait moins beau).

    Merci de toute aide que vous pourrez m'apporter pour résoudre cette énigme

  2. #2
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 476
    Points
    11 476
    Billets dans le blog
    11
    Par défaut
    Salut!

    Ta bibliotheque, tu la compiles en statique (.lib) ou en dynamique (.dll)?
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 66
    Points : 50
    Points
    50
    Par défaut
    Effectivement désolé j'ai oublié de préciser ce point important. Je compile en dynamique (dll)

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Et tu as bien la macro magique de DLL_IMPORTEXPORT pour ta classe ou fonction ?
    C'est une fonction libre ? Le décorateur extern "C" est bien présent ?
    Tu utilises le même compilateur ?
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 66
    Points : 50
    Points
    50
    Par défaut
    Merci, c'était bien ça ... erreur de débutant je ne sais pas pourquoi j'y pense pour les fonctions et les classes mais pas pour les opérateurs

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 13/10/2009, 14h43
  2. [debutant] Link error - nouvelle installation
    Par dwalin dans le forum MFC
    Réponses: 3
    Dernier message: 02/05/2006, 21h45

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