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_STL
    

    Das 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_STL
    

    Nur 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


Anmelden zum Antworten