Probleme bei #includes von Libxml2
-
Hallo zusammen
Ich habe das Problem das mein, ich denke mal Linker mir ein Error wirft, den ich nicht verstehe. Ich will mich gerade an libxml2 versuchen, bin aber dabei nicht wirklich weit gekommen. Ich habe aus testzwecken diesen C++ code:
#include "libxml/HTMLparser.h" #include "libxml/HTMLtree.h" htmlDocPtr htmlParseFile (const char * filename, const char * encoding); int main(){ const char *url = "test.html"; const char *encoding = nullptr; htmlDocPtr pageTree = htmlParseFile(url,encoding); return 0;
und versuche ihn mit g++ zu kompilieren
g++ -I /usr/include/libxml2 test.cpp
mit dem -I gebe ich den Include Pfad an. Der linker sucht das aber nicht ... oder was will mir diese Error-Meldung sagen ?
/usr/bin/ld: /tmp/ccHcfJXF.o: in function `main': test.cpp:(.text+0x2a): undefined reference to `htmlParseFile' collect2: error: ld returned 1 exit status
Ich wäre euch echt dankbar wenn ihr mir da helfen könntet
Ps.: wenn das nicht der linker sein sollte, sondern was anderes, wäre es nett wenn ihr mir helfen würdet den Fehler zu beheben ... und nicht einfach nur "google linker" oder einen verweis auf stackoverflow schicken würdet. ich habe mir da schon vieles durchgelesen, komme aber gerade nicht wirklich weiter ...
Grüße EvD
-
@EvD sagte in Probleme bei #includes von Libxml2:
/usr/include/libxml2
Ja, ist eine Fehlermeldung vom Linker die besagt, daß er ein verwendetes Symbol (
htmlParseFile
) nicht finden kann.Lies bitte die FAQ und verwende
xml2-config --cflags
um die richtigen Compilerflags undxml2-config --libs
um die Linkerflags zu erfahren.PS:
htmlParseFile()
selbst zu deklarieren war wohl eine Verzweiflungstat. Tu das bitte wieder weg.htmlParseFile()
wird schon in den Header Files vonlibxml2
deklariert.
-
dann habe ich noch eine kleine Frage
wie bekomme ich hin, das ich das ganze auch in meinem Visual Studio Code debugger ausführen kann
dann muss ich die .jason bearbeiten ... aber an welcher stelle muss ich das hinzu fügenwäre echt cool wenn ihr mir da helfen könntet ... mit
std::cout
bekommt man das auf dauer auch irgendwie hin, aber das ist nicht so schön wie ein gescheiter debugger.
-
@EvD Bitte in Zukunft eine Frage pro Thread und ein Thread pro Frage. Sowas ist hier auch Off-Topic, gehört ins Compiler- und IDE-Forum.