Libxml2 Linker Error



  • Hallo zusammen,
    ich habe nun vor einiger Zeit angefangen mich mit C++ auseinanderzusetzen. Mitlerweile arbeite ich an einigen klinen Projekten unteranderem auch an einem bei dem libxml zum einsatz kommt.

    Folgendes zum Vorgehen:

    1. libxml2-2.6.28.win32 heruntergeladen
    2. PATH auf den bin-Ordner gesetzt

    3. Sourcecode geschrieben

    folgende includes:

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <libxml/xmlmemory.h>
    #include <libxml/parser.h>
    #include <iostream>
    

    4. Linker auf libxml2.lib gesetzt

    Nun kommt beim kompilieren folgender Fehler:

    [Linker error] undefined reference to `xmlFree'

    Kann mir jemand weiterhelfen?

    Die suche im www hat mich leider nicht zur Lösung geführt.

    Vielen Dank!





  • Ersteinmal vielen Dank für die schnelle Antwort.

    Hilfe fand ich da leider nicht ganz bin aber dann auf

    http://www.pokorra.de/coding/compile_libxml_mingw.html

    gestoßen.

    Dort ist mir aufgefallen, dass gegen C:/Dev-Cpp/lib/libxml2.a gelinkt wird.

    Bisher habe ich den Linker .../libxml2.xxx/lib/libxml2.lib gesetzt.
    Nun sitzt er auf C:/Dev-Cpp/lib/libxml2.lib und siehe da, es scheint zu funktionieren.

    Nun ist ein weiteres Problem aufgetreten.

    ich habe folgenden Codeschnipsel in meinem Code ausprobiert:

    void
    parseStory (xmlDocPtr doc, xmlNodePtr cur, char *keyword) {
    
    	xmlNewTextChild (cur, NULL, "keyword", keyword);
        return;
    }
    

    leider bekomme ich hier:
    invalid conversion from `const char*' to `const xmlChar*'
    liegt es an mir oder ist das Tutorial fehlerhaft?
    Warscheinlich ersteres 😞

    Vielen Dank



  • hst du unicode eingeschaltet oder so? lass dir ma sizeof xmlChar ausgaben. Wenns so groß wie char ist, kannste ja casten mit (const xmlChar*)"bla"



  • Vielen Dank für die Antwort!
    so, (const xmlChar *)keyword habe ich es schon probiert. Das geht leider auch nicht 😞

    Was meinst du damit ?

    hast du unicode eingeschaltet oder so?


Anmelden zum Antworten