PDA

View Full Version : [C++/XML] caricare le librerie xerces


iocci
17-10-2006, 21:30
salve a tutti,
sto cercando imparare come si fa ad elaborare un file XML in un programma C++. Ho cercato un po su intenet, è ho scoperto xerces, che ho anche imparato in fretta perchè è abbastanza facile, solo che mi ci sta volendo una settimana per capire come caricare nel programma ste cacchio di librerie di Xerces. :muro: :cry:

Uso linux Debian e g++, ho installato le librerie tramite pacchetto precompilato .deb, (quindi dovrebbe gia sistemare da solo i PATH e tutto il resto...).
Ho provato a compilare un programma fornito come esempio nella cartella della libreria, che include questi header:

#include <xercesc/parsers/XercesDOMParser.hpp>
#include <xercesc/dom/DOM.hpp>
#include <xercesc/sax/HandlerBase.hpp>
#include <xercesc/util/XMLString.hpp>
#include <xercesc/util/PlatformUtils.hpp>
#define XERCES_HAS_CPP_NAMESPACE
XERCES_CPP_NAMESPACE_USE

l'ho compilato cosi:
g++ prova.cpp

e mi da una valanga di errori tipo:
/tmp/cc6Hwvla.o: In function `main':
prova.cpp:(.text+0x85): undefined reference to `xercesc_2_7::XMLUni::fgXercescDefaultLocale'
prova.cpp:(.text+0xad): undefined reference to `xercesc_2_7::XMLPlatformUtils::Initialize(char const*, char const*, xercesc_2_7::PanicHandler*, xercesc_2_7::MemoryManager*, bool)'
prova.cpp:(.text+0xb9): undefined reference to `xercesc_2_7::XMemory::operator new(unsigned int)'
prova.cpp:(.text+0xc1): undefined reference to `xercesc_2_7::XMLPlatformUtils::fgMemoryManager'
prova.cpp:(.text+0xe0): undefined reference to `xercesc_2_7::XercesDOMParser::XercesDOMParser(xercesc_2_7::XMLValidator*, xercesc_2_7::MemoryManager*, xercesc_2_7::XMLGrammarPool*)'
prova.cpp:(.text+0x11d): undefined reference to `xercesc_2_7::XMLString::transcode(unsigned short const*)'


che sono i tipici errori che da quando non trova le librerie.
Qualcuno sa come fare?

Ho pensato che forse bisogna aggiungere qualche flag al g++, tipo g++ prova.cpp --libxerces.

Sappiatemi dire...

iocci
18-10-2006, 20:43
dopo ore di tentativi ho capito da solo come si fa...
:bsod: :bsod:


g++ prova.cpp -I/usr/include/xerces -lxerces-c