libxml und g++
-
Hallo.
Ich moechte in einem C++ Programm die Libxml++ verwenden.#include <libxml++/libxml++.h> #include <iostream> int main (){ std::cout << "hallo welt"; return 0; }
Wenn ich es mit dem Befehl
g++ xml2.cc
kompiliere erhalte ich folgende Meldung:
xml2.cc:1:33: libxml++/libxml++.h: Datei oder Verzeichnis nicht gefundenAuf meine PC liegen ist libxml++ wie folgt installiert
/usr/doc/libxml++-2.10.0 /usr/local/lib/libxml++-2.6.a /usr/local/lib/pkgconfig/libxml++-2.6.pc /usr/local/lib/libxml++-2.6.so.2 /usr/local/lib/libxml++-2.6.l /usr/local/lib/libxml++-2.6.so /usr/local/lib/libxml++-2.6.so.2.0.4 /usr/local/share/doc/libxml++-2.6 /usr/local/share/doc/libxml++-2.6/docs/reference/2.10/html/libxml++_8h.html /usr/local/include/libxml++-2.6 /usr/local/include/libxml++-2.6/libxml++ /usr/local/include/libxml++-2.6/libxml++/libxml++.h
wenn ich mit folgenden Parametern versuche
g++ -I /usr/local/include/libxml++-2.6/ xml2.cckommt diese Meldung:
In Datei, eingefügt von /usr/local/include/libxml++-2.6/libxml++/exceptions/internal_error.h:25, von /usr/local/include/libxml++-2.6/libxml++/libxml++.h:10, von xml2.cc:1: /usr/local/include/libxml++-2.6/libxml++/exceptions/exception.h:26:28: glibmm/ustring.h: Datei oder Verzeichnis nicht gefunden In file included from /usr/local/include/libxml++-2.6/libxml++/exceptions/internal_error.h:25, from /usr/local/include/libxml++-2.6/libxml++/libxml++.h:10, from xml2.cc:1: /usr/local/include/libxml++-2.6/libxml++/exceptions/exception.h:36: error: Syntaxfehler before `::' token /usr/local/include/libxml++-2.6/libxml++/exceptions/exception.h:44: error: Syntaxfehler before `::' token In Datei, eingefügt von /usr/local/include/libxml++-2.6/libxml++/libxml++.h:10, von xml2.cc:1: /usr/local/include/libxml++-2.6/libxml++/exceptions/internal_error.h:28:28: glibmm/ustring.h: Datei oder Verzeichnis nicht gefunden In file included from /usr/local/include/libxml++-2.6/libxml++/libxml++.h:10, from xml2.cc:1: /usr/local/include/libxml++-2.6/libxml++/exceptions/internal_error.h:35: error: Syntaxfehler ... ...
Kann mir von euch bitte jemand weiterhelfen?
danke
lg
Michi
-
Tipp mal folgendes ein:
pkgtool -list--all | grep 'libxml*'
Das müsste dann sowas à la libxml++-2.6 ausgeben, dann kompilierst du so:
g++ -c xml2.cc $(pkg-config libxml++-2.6 --cflags --libs)
-
danke fuer die info GPC!
hab zuerst pkg-config etwas aufraeumen mussen.
schlussendlich erhiet ich jedoch mit pkg-config --list-all | grep libxml++*
die Ausgabe
libxml++-2.6 libxml++ - C++ wrapper for libxmlpkg-config libxml++-2.6 --cflags --libs
gibt folgendes aus:-I/usr/local/include/libxml++-2.6 -I/usr/local/lib/libxml++-2.6/include -I/usr/local/include/glibmm-2.4 -I/usr/local/lib/glibmm-2.4/include -I/usr/include/libxml2 -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -L/usr/local/lib -lxml++-2.6 -lxml2 -lz -lm -lglibmm-2.4 -lgobject-2.0 -lsigc-2.0 -lglib-2.0
wenn ich nun
g++ -c xml2.cc $(pkg-config libxml++-2.6 --cflags --libs)
ausfuehre erhalte ichg++: -lxml++-2.6: Eingabedateien des Binders unbenutzt, da keine Bindung geschieht g++: -lxml2: Eingabedateien des Binders unbenutzt, da keine Bindung geschieht g++: -lz: Eingabedateien des Binders unbenutzt, da keine Bindung geschieht g++: -lm: Eingabedateien des Binders unbenutzt, da keine Bindung geschieht g++: -lglibmm-2.4: Eingabedateien des Binders unbenutzt, da keine Bindung geschieht g++: -lgobject-2.0: Eingabedateien des Binders unbenutzt, da keine Bindung geschieht g++: -lsigc-2.0: Eingabedateien des Binders unbenutzt, da keine Bindung geschieht g++: -lglib-2.0: Eingabedateien des Binders unbenutzt, da keine Bindung geschieht
-
Ja, die Meldungen kriegst du weil du nichts gelinkt hast, sondern nur -c verwendet hast. Wenn du eine binary erstellst, müsste es klappen.
-
GPC schrieb:
Ja, die Meldungen kriegst du weil du nichts gelinkt hast, sondern nur -c verwendet hast. Wenn du eine binary erstellst, müsste es klappen.
funktioniert.
danke!