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...
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...