Problem mit TinyXML
-
Hallo ich bin gerade C++ am lernen und möchte nun mit XML Dateien basteln, als Compiler benutze ich Dev-C++ unter Windows.
So ich habe nun folgendes Beispiel gefunden:#include <cstdlib> #include <iostream> #include "tinyxml/tinyxml.h" using namespace std; int main(int argc, char *argv[]){ TiXmlDocument doc("demo.xml"); if(doc.LoadFile()){ TiXmlNode* element = doc.RootElement(); while(element != 0){ cout << element->Value() << endl; element = element->FirstChild(); } } system("PAUSE"); return EXIT_SUCCESS; }Jetzt habe ich die Lib schon heruntergeladen und eingebunden aber ich bekomme trotzdem einen Linker error:
[Linker error] undefined reference to `TiXmlString::nullrep_'Gibt es da noch eine 2. Lib die er braucht?
-
Soweit ich weiß brauch TinyXML nur seine .cpp-Dateien.
Jedoch hatte ich schon öfters irgendwelche komischen Probleme mit der eingebauten String-Lib von TinyXML, weshalb ich folgendes define in die tinyxml.h gesetzt habe.
#define TIXML_USE_STLDas bewirkt, dass TinyXML die strings aus der Standard-Library nutzt.
Seitdem hatte ich nie wieder Probleme mit TonyXMl, jedenfalls keine Linkerprobleme^^
-
Ne der Fehler bleibt, muss ich das einfach an an den anfang der Datei schreiben oder an eine bestimmte stelle?
EDIT: Also ohne die Lib im Compiler kommt dies:
[Linker error] undefined reference to `TiXmlDocument::TiXmlDocument(char const*)' [Linker error] undefined reference to `TiXmlDocument::LoadFile(TiXmlEncoding)' [Linker error] undefined reference to `vtable for TiXmlDocument' [Linker error] undefined reference to `TiXmlNode::~TiXmlNode()' [Linker error] undefined reference to `TiXmlNode::~TiXmlNode()' [Linker error] undefined reference to `TiXmlString::nullrep_' [Linker error] undefined reference to `TiXmlNode::FirstChildElement() const'
-
Am besten bevor du tinyxml.h includest, oder direkt in die tinyxml.h.
Bevor ichs vergesse:
Du hast schon tinyxml.cpp und die anderen .cpp´s deinem Projekt hinzugefügt, oder?
-
ich sehe gerade wenn ich die tinyxml.h aus dem Dev-C++ include Ordner nehme dann geht es. ^^
-
The-Kenny schrieb:
#define TIXML_USE_STLNur so, ich hatte mal ein Problem mit den std::strings, da hat es geholfen diese Option /abzuschalten/
-
Ich habe wieder einen neuen Fehler:
multiple definition of `TiXmlNode::FirstChildElement()'
first defined here