Undefined Reference bei wxXml



  • Hallo,

    Ich hab ein kleines Problem mit wxXmlDocument und wxXmlNode.

    #include <wx/object.h>
    #include <wx/string.h>
    #include <wx/xml/xml.h>
    
    int main(int argc, char **argv)
    {
      wxPuts(wxT("TestApplication"));
    
      wxXmlDocument b();
    
      wxXmlNode a(wxXML_ELEMENT_NODE,wxT("Test"), wxT("123"));
    
      //b.SetRoot(a);
    
      //bool c = betra.Save(wxT("test.xml"));
    }
    
    -------------- Build: Debug in wxConsoleTest ---------------
    
    Compiling: main.cpp
    Linking console executable: bin\Debug\wxConsoleTest.exe
    obj\Debug\main.o: In function `ZN12wxStringBaseC2EPKw':
    C:/wxWidgets-2.8.9/include/wx/string.h:368: undefined reference to `wxXmlNode::wxXmlNode(wxXmlNode*, wxXmlNodeType, wxString const&, wxString const&, wxXmlProperty*, wxXmlNode*)'
    C:/wxWidgets-2.8.9/include/wx/string.h:368: undefined reference to `wxXmlNode::~wxXmlNode()'
    collect2: ld returned 1 exit status
    Process terminated with status 1 (0 minutes, 1 seconds)
    2 errors, 0 warnings
    

    Sobald ich versuche einen wxString als Parameter bei den Konstruktoren der wxXml-Klassen zu benutzen kommt der Fehler und ich hab keine Ahnung warum.



  • Du hast den ersten Parameter vergessen, dort sollte ein XmlNode-Zeiger hin und nicht die enum-Konstante



  • wxXmlNode (wxXmlNodeType type, const wxString &name, const wxString &content=wxEmptyString, int lineNo=-1)
     	A simplified version of the first constructor form, assuming a NULL parent.
    

    Das ist ein anderer Konstruktor speziell für Nodes ohne Parent. Mit würde es auch nicht funktionieren.

    Hat den niemand auch nur den hauch einer Idee.



  • So jetzt hab ich mal frisch verlinkt und jetzt kommt eine anderee Fehlermeldung:

    C:\wxWidgets-2.8.9\lib\gcc_lib/libwxbase28ud_xml.a(xmllib_xml.o): In function `ZN13wxXmlDocument4LoadER13wxInputStreamRK8wxStringi':
    c:/wxWidgets-2.8.9/build/msw/../../src/xml/xml.cpp:685: undefined reference to `XML_ParserCreate'
    c:/wxWidgets-2.8.9/build/msw/../../src/xml/xml.cpp:696: undefined reference to `XML_SetUserData'
    c:/wxWidgets-2.8.9/build/msw/../../src/xml/xml.cpp:697: undefined reference to `XML_SetElementHandler'
    c:/wxWidgets-2.8.9/build/msw/../../src/xml/xml.cpp:698: undefined reference to `XML_SetCharacterDataHandler'
    c:/wxWidgets-2.8.9/build/msw/../../src/xml/xml.cpp:699: undefined reference to `XML_SetStartCdataSectionHandler'
    c:/wxWidgets-2.8.9/build/msw/../../src/xml/xml.cpp:700: undefined reference to `XML_SetCommentHandler'
    c:/wxWidgets-2.8.9/build/msw/../../src/xml/xml.cpp:701: undefined reference to `XML_SetDefaultHandler'
    c:/wxWidgets-2.8.9/build/msw/../../src/xml/xml.cpp:702: undefined reference to `XML_SetUnknownEncodingHandler'
    c:/wxWidgets-2.8.9/build/msw/../../src/xml/xml.cpp:709: undefined reference to `XML_Parse'
    c:/wxWidgets-2.8.9/build/msw/../../src/xml/xml.cpp:712: undefined reference to `XML_GetErrorCode'
    c:/wxWidgets-2.8.9/build/msw/../../src/xml/xml.cpp:712: undefined reference to `XML_ErrorString'
    c:/wxWidgets-2.8.9/build/msw/../../src/xml/xml.cpp:713: undefined reference to `XML_GetCurrentLineNumber'
    c:/wxWidgets-2.8.9/build/msw/../../src/xml/xml.cpp:734: undefined reference to `XML_ParserFree'
    

    Kann jmd etwas damit Anfangen.

    Als zusätzliche information. Ich benutze Code::Blocks und wxWidgets 2.8.9 und versuche statisch zu Builden.



  • Also die Lösung des Problems ist einfach "libwxexpat.a" mit zu linken... warum weiß ich nicht.

    Wenn ich es mit einem Dll-Build mache gehts auch ohne die Bibliothek...


  • Mod

    Das ist der XML Parser 😉


Anmelden zum Antworten