Liebe Community,
heute bin ich auf ein ziemlich schräges Problem gestoßen, das ich mir mal wieder nicht erklären kann. Das Problem ist folgendes: Ich benutze TinyXML 2, um XML-Dateien einzulesen. Dabei linke ich TinyXML statisch, und der Linker gibt keine Probleme, ich kann auf alle Attribute zugreifen, über alle Child-Nodes iterieren, und alles läuft gut, bis ich folgende Zeile einfüge:
|
C-/C++-Quelltext
|
1
2
3
4
|
// pChild wird zuvor initialisiert:
XMLElement* pChild = ...;
[...]
const char* name = pChild->Name();
|
Ich kann alle Memberfunktionen aufrufen, und ich erhalte den folgenden Linker-Fehler immer nur, wenn ich die Funktion Name() - die ja wiederum Value() aufruft - aufrufe, d.h. ich kann alle Funktionen benutzen, außer dieser einen Value()-Funktion, obwohl diese im gleichen Header deklariert wird.
Linker-Fehler:
|
C-/C++-Quelltext
|
1
|
2>tinyxml2d.lib(tinyxml2.obj) : error LNK2005: "public: char const * __thiscall tinyxml2::XMLNode::Value(void)const " (?Value@XMLNode@tinyxml2@@QBEPBDXZ) already defined in XMLLoader.obj
|
Nun meine Frage: Woher kann dieser skurrile Fehler rühren? Es scheint ja ausschließlich an einer einzelnen Memberfunktion zu liegen. Weiß irgendjemand Rat? Ich linke tinyxml2 der Konfiguration entsprechend, d.h. "Debug" nutzt tinyxml2
d.lib, und "Release" nutzt tinyxml2.lib.
Liebe Grüße,
~ EuadeLuxe ~