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
Partager