Rechercher : dans
Par :

Programmation dom avec xerces en c++

Dernière réponse le 17 mar 2009 à 18:07:34 Goupfrancis, le 27 fév 2009 à 11:25:32 
 Signaler ce message aux modérateurs

Bonjour, je suis débutant sur l'utilisation de Dom et de l'API xerces en c++ sous linux, j'ai installé les librairies lixerces-c-devel, lixercesc-0,lixerces-c28 sous mon mandriva free 2009; j'essaie d'éxécuter le code(fichier test.cc) suivant: pour creer un parser:

#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>
#include <iostream>

using namespace std;
using namespace xercesc;

int main (int argc, char* args[]) {

try {
XMLPlatformUtils::Initialize();
}
catch (const XMLException& toCatch) {
char* message = XMLString::transcode(toCatch.getMessage());
cout << "Error during initialization! :\n"
<< message << "\n";
XMLString::release(&message);
return 1;
}

XercesDOMParser* parser = new XercesDOMParser();
parser->setValidationScheme(XercesDOMParser::Val_Always);
parser->setDoNamespaces(true); // optional

ErrorHandler* errHandler = (ErrorHandler*) new HandlerBase();
parser->setErrorHandler(errHandler);

char* xmlFile = "/home/francis/Bureau/schema.xml";

try {
parser->parse(xmlFile);
}
catch (const XMLException& toCatch) {
char* message = XMLString::transcode(toCatch.getMessage());
cout << "Exception message is: \n"
<< message << "\n";
XMLString::release(&message);
return -1;
}
catch (const DOMException& toCatch) {
char* message = XMLString::transcode(toCatch.msg);
cout << "Exception message is: \n"
<< message << "\n";
XMLString::release(&message);
return -1;
}
catch (...) {
cout << "Unexpected Exception \n" ;
return -1;
}

delete parser;
delete errHandler;
return 0;
}

le programme compile mais à l'edition des liens j'ai la page d'erreurs suivante:

[francis@localhost Bureau]$ gcc -W -Wall test.cc -o test
test.cc: In function ‘int main(int, char**)’:
test.cc:31: attention : deprecated conversion from string constant to ‘char*’
test.cc: At global scope:
test.cc:11: attention : unused parameter ‘argc’
test.cc:11: attention : unused parameter ‘args’
/home/francis/tmp/cclsEcOL.o: In function `__static_initialization_and_destruction_0(int, int)':
test.cc:(.text+0x1d): undefined reference to `std::ios_base::Init::Init()'
test.cc:(.text+0x22): undefined reference to `std::ios_base::Init::~Init()'
/home/francis/tmp/cclsEcOL.o: In function `main':
test.cc:(.text+0x92): undefined reference to `xercesc_2_8::XMLUni::fgXercescDefaultLocale'
test.cc:(.text+0x97): undefined reference to `xercesc_2_8::XMLPlatformUtils::Initialize(char const*, char const*, xercesc_2_8::PanicHandler*, xercesc_2_8::MemoryManager*, bool)'
test.cc:(.text+0xa3): undefined reference to `xercesc_2_8::XMemory::operator new(unsigned int)'
test.cc:(.text+0xab): undefined reference to `xercesc_2_8::XMLPlatformUtils::fgMemoryManager'
test.cc:(.text+0xca): undefined reference to `xercesc_2_8::XercesDOMParser::XercesDOMParser(xercesc_2_8::XMLValidator*, xercesc_2_8::MemoryManager*, xercesc_2_8::XMLGrammarPool*)'
test.cc:(.text+0xf1): undefined reference to `__cxa_begin_catch'
test.cc:(.text+0x107): undefined reference to `xercesc_2_8::XMLString::transcode(unsigned short const*)'
test.cc:(.text+0x11f): undefined reference to `std::cout'
test.cc:(.text+0x124): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
test.cc:(.text+0x133): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
test.cc:(.text+0x143): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
test.cc:(.text+0x14e): undefined reference to `xercesc_2_8::XMLString::release(char**)'
test.cc:(.text+0x15a): undefined reference to `__cxa_end_catch'
test.cc:(.text+0x170): undefined reference to `__cxa_end_catch'
test.cc:(.text+0x19a): undefined reference to `xercesc_2_8::AbstractDOMParser::setValidationScheme(xercesc_2_8::AbstractDOMParser::ValSchemes)'
test.cc:(.text+0x1ad): undefined reference to `xercesc_2_8::AbstractDOMParser::setDoNamespaces(bool)'
test.cc:(.text+0x1b9): undefined reference to `operator new(unsigned int)'
test.cc:(.text+0x1e5): undefined reference to `xercesc_2_8::XMemory::operator delete(void*)'
test.cc:(.text+0x220): undefined reference to `xercesc_2_8::XercesDOMParser::setErrorHandler(xercesc_2_8::ErrorHandler*)'
test.cc:(.text+0x239): undefined reference to `xercesc_2_8::AbstractDOMParser::parse(char const*)'
test.cc:(.text+0x26e): undefined reference to `__cxa_begin_catch'
test.cc:(.text+0x284): undefined reference to `xercesc_2_8::XMLString::transcode(unsigned short const*)'
test.cc:(.text+0x29c): undefined reference to `std::cout'
test.cc:(.text+0x2a1): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
test.cc:(.text+0x2b0): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
test.cc:(.text+0x2c0): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
test.cc:(.text+0x2cb): undefined reference to `xercesc_2_8::XMLString::release(char**)'
test.cc:(.text+0x2d7): undefined reference to `__cxa_end_catch'
test.cc:(.text+0x2ed): undefined reference to `__cxa_end_catch'
test.cc:(.text+0x309): undefined reference to `__cxa_begin_catch'
test.cc:(.text+0x31a): undefined reference to `xercesc_2_8::XMLString::transcode(unsigned short const*)'
test.cc:(.text+0x332): undefined reference to `std::cout'
test.cc:(.text+0x337): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
test.cc:(.text+0x346): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
test.cc:(.text+0x356): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
test.cc:(.text+0x361): undefined reference to `xercesc_2_8::XMLString::release(char**)'
test.cc:(.text+0x36d): undefined reference to `__cxa_end_catch'
test.cc:(.text+0x383): undefined reference to `__cxa_end_catch'
test.cc:(.text+0x39f): undefined reference to `__cxa_begin_catch'
test.cc:(.text+0x3ae): undefined reference to `std::cout'
test.cc:(.text+0x3b3): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
test.cc:(.text+0x3bf): undefined reference to `__cxa_end_catch'
test.cc:(.text+0x3d2): undefined reference to `__cxa_end_catch'
/home/francis/tmp/cclsEcOL.o: In function `xercesc_2_8::XMLDeleter::~XMLDeleter()':
test.cc:(.text._ZN11xercesc_2_810XMLDeleterD0Ev[xercesc_2_8::XMLDeleter::~XMLDeleter()]+0x1f): undefined reference to `operator delete(void*)'
/home/francis/tmp/cclsEcOL.o: In function `xercesc_2_8::XMLDeleter::~XMLDeleter()':
test.cc:(.text._ZN11xercesc_2_810XMLDeleterD1Ev[xercesc_2_8::XMLDeleter::~XMLDeleter()]+0x1f): undefined reference to `operator delete(void*)'
/home/francis/tmp/cclsEcOL.o: In function `xercesc_2_8::XSerializable::~XSerializable()':
test.cc:(.text._ZN11xercesc_2_813XSerializableD2Ev[xercesc_2_8::XSerializable::~XSerializable()]+0x1f): undefined reference to `operator delete(void*)'
/home/francis/tmp/cclsEcOL.o: In function `xercesc_2_8::XSerializable::~XSerializable()':
test.cc:(.text._ZN11xercesc_2_813XSerializableD0Ev[xercesc_2_8::XSerializable::~XSerializable()]+0x1f): undefined reference to `operator delete(void*)'
/home/francis/tmp/cclsEcOL.o: In function `xercesc_2_8::XSerializable::~XSerializable()':
test.cc:(.text._ZN11xercesc_2_813XSerializableD1Ev[xercesc_2_8::XSerializable::~XSerializable()]+0x1f): undefined reference to `operator delete(void*)'
/home/francis/tmp/cclsEcOL.o:test.cc:(.text._ZN11xercesc_2_811PSVIHandlerD0Ev[xercesc_2_8::PSVIHandler::~PSVIHandler()]+0x1f): more undefined references to `operator delete(void*)' follow
/home/francis/tmp/cclsEcOL.o: In function `xercesc_2_8::XMLAttDefList::~XMLAttDefList()':
test.cc:(.text._ZN11xercesc_2_813XMLAttDefListD0Ev[xercesc_2_8::XMLAttDefList::~XMLAttDefList()]+0x2a): undefined reference to `xercesc_2_8::XMemory::operator delete(void*)'
/home/francis/tmp/cclsEcOL.o: In function `xercesc_2_8::XMLAttDefList::~XMLAttDefList()':
test.cc:(.text._ZN11xercesc_2_813XMLAttDefListD1Ev[xercesc_2_8::XMLAttDefList::~XMLAttDefList()]+0x2a): undefined reference to `xercesc_2_8::XMemory::operator delete(void*)'
/home/francis/tmp/cclsEcOL.o: In function `xercesc_2_8::PSVIItem::~PSVIItem()':
test.cc:(.text._ZN11xercesc_2_88PSVIItemD0Ev[xercesc_2_8::PSVIItem::~PSVIItem()]+0x1f): undefined reference to `xercesc_2_8::XMemory::operator delete(void*)'
/home/francis/tmp/cclsEcOL.o: In function `xercesc_2_8::PSVIItem::~PSVIItem()':
test.cc:(.text._ZN11xercesc_2_88PSVIItemD1Ev[xercesc_2_8::PSVIItem::~PSVIItem()]+0x1f): undefined reference to `xercesc_2_8::XMemory::operator delete(void*)'
/home/francis/tmp/cclsEcOL.o: In function `xercesc_2_8::PSVIItem::~PSVIItem()':
test.cc:(.text._ZN11xercesc_2_88PSVIItemD2Ev[xercesc_2_8::PSVIItem::~PSVIItem()]+0x1f): undefined reference to `xercesc_2_8::XMemory::operator delete(void*)'
/home/francis/tmp/cclsEcOL.o: In function `xercesc_2_8::DTDEntityDecl::~DTDEntityDecl()':
test.cc:(.text._ZN11xercesc_2_813DTDEntityDeclD0Ev[xercesc_2_8::DTDEntityDecl::~DTDEntityDecl()]+0x16): undefined reference to `xercesc_2_8::XMLEntityDecl::~XMLEntityDecl()'
test.cc:(.text._ZN11xercesc_2_813DTDEntityDeclD0Ev[xercesc_2_8::DTDEntityDecl::~DTDEntityDecl()]+0x2a): undefined reference to `xercesc_2_8::XMemory::operator delete(void*)'
/home/francis/tmp/cclsEcOL.o: In function `xercesc_2_8::DTDEntityDecl::~DTDEntityDecl()':
test.cc:(.text._ZN11xercesc_2_813DTDEntityDeclD1Ev[xercesc_2_8::DTDEntityDecl::~DTDEntityDecl()]+0x16): undefined reference to `xercesc_2_8::XMLEntityDecl::~XMLEntityDecl()'
test.cc:(.text._ZN11xercesc_2_813DTDEntityDeclD1Ev[xercesc_2_8::DTDEntityDecl::~DTDEntityDecl()]+0x2a): undefined reference to `xercesc_2_8::XMemory::operator delete(void*)'
/home/francis/tmp/cclsEcOL.o: In function `xercesc_2_8::PSVIAttribute::~PSVIAttribute()':
test.cc:(.text._ZN11xercesc_2_813PSVIAttributeD0Ev[xercesc_2_8::PSVIAttribute::~PSVIAttribute()]+0x7f): undefined reference to `xercesc_2_8::XMemory::operator delete(void*)'
/home/francis/tmp/cclsEcOL.o:(.gcc_except_table+0xa0): undefined reference to `typeinfo for xercesc_2_8::XMLException'
/home/francis/tmp/cclsEcOL.o:(.gcc_except_table+0xa4): undefined reference to `typeinfo for xercesc_2_8::DOMException'
/home/francis/tmp/cclsEcOL.o: In function `xercesc_2_8::PSVIAttribute::~PSVIAttribute()':
test.cc:(.text._ZN11xercesc_2_813PSVIAttributeD1Ev[xercesc_2_8::PSVIAttribute::~PSVIAttribute()]+0x7f): undefined reference to `xercesc_2_8::XMemory::operator delete(void*)'
/home/francis/tmp/cclsEcOL.o: In function `xercesc_2_8::HandlerBase::fatalError(xercesc_2_8::SAXParseException const&)':
test.cc:(.text._ZN11xercesc_2_811HandlerBase10fatalErrorERKNS_17SAXParseExceptionE[xercesc_2_8::HandlerBase::fatalError(xercesc_2_8::SAXParseException const&)]+0x16): undefined reference to `__cxa_allocate_exception'
test.cc:(.text._ZN11xercesc_2_811HandlerBase10fatalErrorERKNS_17SAXParseExceptionE[xercesc_2_8::HandlerBase::fatalError(xercesc_2_8::SAXParseException const&)]+0x2b): undefined reference to `xercesc_2_8::SAXParseException::SAXParseException(xercesc_2_8::SAXParseException const&)'
test.cc:(.text._ZN11xercesc_2_811HandlerBase10fatalErrorERKNS_17SAXParseExceptionE[xercesc_2_8::HandlerBase::fatalError(xercesc_2_8::SAXParseException const&)]+0x33): undefined reference to `xercesc_2_8::SAXParseException::~SAXParseException()'
test.cc:(.text._ZN11xercesc_2_811HandlerBase10fatalErrorERKNS_17SAXParseExceptionE[xercesc_2_8::HandlerBase::fatalError(xercesc_2_8::SAXParseException const&)]+0x3b): undefined reference to `typeinfo for xercesc_2_8::SAXParseException'
test.cc:(.text._ZN11xercesc_2_811HandlerBase10fatalErrorERKNS_17SAXParseExceptionE[xercesc_2_8::HandlerBase::fatalError(xercesc_2_8::SAXParseException const&)]+0x46): undefined reference to `__cxa_throw'
test.cc:(.text._ZN11xercesc_2_811HandlerBase10fatalErrorERKNS_17SAXParseExceptionE[xercesc_2_8::HandlerBase::fatalError(xercesc_2_8::SAXParseException const&)]+0x5e): undefined reference to `std::terminate()'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTVN11xercesc_2_811PSVIHandlerE[vtable for xercesc_2_8::PSVIHandler]+0x10): undefined reference to `__cxa_pure_virtual'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTVN11xercesc_2_811PSVIHandlerE[vtable for xercesc_2_8::PSVIHandler]+0x18): undefined reference to `__cxa_pure_virtual'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTVN11xercesc_2_813PSVIAttributeE[vtable for xercesc_2_8::PSVIAttribute]+0x18): undefined reference to `xercesc_2_8::PSVIItem::getActualValue() const'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTVN11xercesc_2_88PSVIItemE[vtable for xercesc_2_8::PSVIItem]+0x10): undefined reference to `__cxa_pure_virtual'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTVN11xercesc_2_88PSVIItemE[vtable for xercesc_2_8::PSVIItem]+0x14): undefined reference to `__cxa_pure_virtual'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTVN11xercesc_2_88PSVIItemE[vtable for xercesc_2_8::PSVIItem]+0x18): undefined reference to `xercesc_2_8::PSVIItem::getActualValue() const'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTVN11xercesc_2_813DTDEntityDeclE[vtable for xercesc_2_8::DTDEntityDecl]+0x10): undefined reference to `xercesc_2_8::DTDEntityDecl::isSerializable() const'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTVN11xercesc_2_813DTDEntityDeclE[vtable for xercesc_2_8::DTDEntityDecl]+0x14): undefined reference to `xercesc_2_8::DTDEntityDecl::serialize(xercesc_2_8::XSerializeEngine&)'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTVN11xercesc_2_813DTDEntityDeclE[vtable for xercesc_2_8::DTDEntityDecl]+0x18): undefined reference to `xercesc_2_8::DTDEntityDecl::getProtoType() const'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTVN11xercesc_2_813XMLAttDefListE[vtable for xercesc_2_8::XMLAttDefList]+0x10): undefined reference to `xercesc_2_8::XMLAttDefList::isSerializable() const'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTVN11xercesc_2_813XMLAttDefListE[vtable for xercesc_2_8::XMLAttDefList]+0x14): undefined reference to `xercesc_2_8::XMLAttDefList::serialize(xercesc_2_8::XSerializeEngine&)'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTVN11xercesc_2_813XMLAttDefListE[vtable for xercesc_2_8::XMLAttDefList]+0x18): undefined reference to `xercesc_2_8::XMLAttDefList::getProtoType() const'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTVN11xercesc_2_813XMLAttDefListE[vtable for xercesc_2_8::XMLAttDefList]+0x1c): undefined reference to `__cxa_pure_virtual'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTVN11xercesc_2_813XMLAttDefListE[vtable for xercesc_2_8::XMLAttDefList]+0x20): undefined reference to `__cxa_pure_virtual'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTVN11xercesc_2_813XMLAttDefListE[vtable for xercesc_2_8::XMLAttDefList]+0x24): undefined reference to `__cxa_pure_virtual'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTVN11xercesc_2_813XMLAttDefListE[vtable for xercesc_2_8::XMLAttDefList]+0x28): undefined reference to `__cxa_pure_virtual'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTVN11xercesc_2_813XMLAttDefListE[vtable for xercesc_2_8::XMLAttDefList]+0x2c): undefined reference to `__cxa_pure_virtual'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTVN11xercesc_2_813XMLAttDefListE[vtable for xercesc_2_8::XMLAttDefList]+0x30): more undefined references to `__cxa_pure_virtual' follow
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTIN11xercesc_2_811HandlerBaseE[typeinfo for xercesc_2_8::HandlerBase]+0x0): undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTIN11xercesc_2_811PSVIHandlerE[typeinfo for xercesc_2_8::PSVIHandler]+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTIN11xercesc_2_813PSVIAttributeE[typeinfo for xercesc_2_8::PSVIAttribute]+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTIN11xercesc_2_88PSVIItemE[typeinfo for xercesc_2_8::PSVIItem]+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTIN11xercesc_2_813DTDEntityDeclE[typeinfo for xercesc_2_8::DTDEntityDecl]+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTIN11xercesc_2_813DTDEntityDeclE[typeinfo for xercesc_2_8::DTDEntityDecl]+0x8): undefined reference to `typeinfo for xercesc_2_8::XMLEntityDecl'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTIN11xercesc_2_813XMLAttDefListE[typeinfo for xercesc_2_8::XMLAttDefList]+0x0): undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTIN11xercesc_2_810XMLDeleterE[typeinfo for xercesc_2_8::XMLDeleter]+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTIN11xercesc_2_814EntityResolverE[typeinfo for xercesc_2_8::EntityResolver]+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTIN11xercesc_2_810DTDHandlerE[typeinfo for xercesc_2_8::DTDHandler]+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTIN11xercesc_2_815DocumentHandlerE[typeinfo for xercesc_2_8::DocumentHandler]+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTIN11xercesc_2_812ErrorHandlerE[typeinfo for xercesc_2_8::ErrorHandler]+0x0): undefined reference to`vtable for __cxxabiv1::__class_type_info'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTIN11xercesc_2_87XMemoryE[typeinfo for xercesc_2_8::XMemory]+0x0): more undefined references to `vtable for __cxxabiv1::__class_type_info' follow
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTVN11xercesc_2_813XSerializableE[vtable for xercesc_2_8::XSerializable]+0x10): undefined reference to `__cxa_pure_virtual'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTVN11xercesc_2_813XSerializableE[vtable for xercesc_2_8::XSerializable]+0x14): undefined reference to `__cxa_pure_virtual'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTVN11xercesc_2_813XSerializableE[vtable for xercesc_2_8::XSerializable]+0x18): undefined reference to `__cxa_pure_virtual'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTVN11xercesc_2_812ErrorHandlerE[vtable for xercesc_2_8::ErrorHandler]+0x10): undefined reference to `__cxa_pure_virtual'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTVN11xercesc_2_812ErrorHandlerE[vtable for xercesc_2_8::ErrorHandler]+0x14): undefined reference to `__cxa_pure_virtual'
/home/francis/tmp/cclsEcOL.o:(.rodata._ZTVN11xercesc_2_812ErrorHandlerE[vtable for xercesc_2_8::ErrorHandler]+0x18): more undefined references to `__cxa_pure_virtual' follow
/home/francis/tmp/cclsEcOL.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: ld a retourné 1 code d'état d'exécution
[francis@localhost Bureau]$

Je ne sais pas ce qui ce passe. S'il vous plaît aider moi; Merci d'avance et surtout excusez moi pour la longueur

Configuration: Linux Mandriva
Firefox 3.0.5

Meilleures réponses pour « programmation dom avec xerces en c++ » dans :
Compiler un programme en C avec Dev C++ sous Vista VoirIl est très probable que vous ayez des problèmes lors de la compilation d'une source C sous Vista avec Dev C++. Solution rapide de secours: le compilateur g++ Voici une astuce pour Dev-Cpp : Aller dans "Outils" -> "Options du compilateur" puis...
Les piles en langage C VoirLes piles Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la pile IV. Opérations sur les piles A. Initialisation B. Insertion d'un élément dans la pile C. Ôter un élément de la pile D. Affichage...
Introduction à la programmation des CGI VoirPrésentation de l'interface CGI Un script CGI (Common Gateway Interface, traduisez interface de passerelle commune) est un programme exécuté par le serveur web (on dit généralement « côté serveur »), permettant d'envoyer au navigateur de...
Caractéristiques du langage C VoirLe fichier source Le fichier source d'un programme écrit en langage C est un simple fichier texte dont l'extension est par convention .c. Note d'un visiteur (J.Grondin) : L'extension est en minuscules. Le .C (majuscule) est interprété par...
Les pointeurs en langage C VoirDéfinition d'un pointeur Un pointeur est une variable contenant l'adresse d'une autre variable d'un type donné. La notion de pointeur fait souvent peur car il s'agit d'une technique de programmation très puissante, permettant de définir des...

1

loupius, le 27 fév 2009 à 11:45:25

C'est du C++ --->>> Il faut utiliser g++ !!!

Répondre à loupius

2

Goupfrancis, le 27 fév 2009 à 20:10:59

Bonsoir, avec g++, j'ai le même resultat

[francis@localhost Bureau]$ g++ -o test test.cc
test.cc: In function ‘int main(int, char**)’:
test.cc:31: attention : deprecated conversion from string constant to ‘char*’
/home/francis/tmp/ccMsWnm3.o: In function `main':
test.cc:(.text+0x92): undefined reference to `xercesc_2_8::XMLUni::fgXercescDefaultLocale'
test.cc:(.text+0x97): undefined reference to `xercesc_2_8::XMLPlatformUtils::Initialize(char const*, char const*, xercesc_2_8::PanicHandler*, xercesc_2_8::MemoryManager*, bool)'
test.cc:(.text+0xa3): undefined reference to `xercesc_2_8::XMemory::operator new(unsigned int)'
test.cc:(.text+0xab): undefined reference to `xercesc_2_8::XMLPlatformUtils::fgMemoryManager'
test.cc:(.text+0xca): undefined reference to `xercesc_2_8::XercesDOMParser::XercesDOMParser(xercesc_2_8::­XMLValidator*, xercesc_2_8::MemoryManager*, xercesc_2_8::XMLGrammarPool*)'
test.cc:(.text+0x107): undefined reference to `xercesc_2_8::XMLString::transcode(unsigned short const*)'
test.cc:(.text+0x14e): undefined reference to `xercesc_2_8::XMLString::release(char**)'
test.cc:(.text+0x19a): undefined reference to `xercesc_2_8::AbstractDOMParser::setValidationScheme(xercesc­_2_8::AbstractDOMParser::ValSchemes)'
test.cc:(.text+0x1ad): undefined reference to `xercesc_2_8::AbstractDOMParser::setDoNamespaces(bool)'
test.cc:(.text+0x1e5): undefined reference to `xercesc_2_8::XMemory::operator delete(void*)'
test.cc:(.text+0x220): undefined reference to `xercesc_2_8::XercesDOMParser::setErrorHandler(xercesc_2_8::­ErrorHandler*)'
test.cc:(.text+0x239): undefined reference to `xercesc_2_8::AbstractDOMParser::parse(char const*)'
test.cc:(.text+0x284): undefined reference to `xercesc_2_8::XMLString::transcode(unsigned short const*)'
test.cc:(.text+0x2cb): undefined reference to `xercesc_2_8::XMLString::release(char**)'
test.cc:(.text+0x31a): undefined reference to `xercesc_2_8::XMLString::transcode(unsigned short const*)'
test.cc:(.text+0x361): undefined reference to `xercesc_2_8::XMLString::release(char**)'
/home/francis/tmp/ccMsWnm3.o: In function `xercesc_2_8::XMLAttDefList::~XMLAttDefList()':
test.cc:(.text._ZN11xercesc_2_813XMLAttDefListD0Ev[xercesc_2­_8::XMLAttDefList::~XMLAttDefList()]+0x2a): undefined reference to `xercesc_2_8::XMemory::operator delete(void*)'
/home/francis/tmp/ccMsWnm3.o: In function `xercesc_2_8::XMLAttDefList::~XMLAttDefList()':
test.cc:(.text._ZN11xercesc_2_813XMLAttDefListD1Ev[xercesc_2­_8::XMLAttDefList::~XMLAttDefList()]+0x2a): undefined reference to `xercesc_2_8::XMemory::operator delete(void*)'
/home/francis/tmp/ccMsWnm3.o: In function `xercesc_2_8::PSVIItem::~PSVIItem()':
test.cc:(.text._ZN11xercesc_2_88PSVIItemD0Ev[xercesc_2_8::PS­VIItem::~PSVIItem()]+0x1f): undefined reference to `xercesc_2_8::XMemory::operator delete(void*)'
/home/francis/tmp/ccMsWnm3.o: In function `xercesc_2_8::PSVIItem::~PSVIItem()':
test.cc:(.text._ZN11xercesc_2_88PSVIItemD1Ev[xercesc_2_8::PS­VIItem::~PSVIItem()]+0x1f): undefined reference to `xercesc_2_8::XMemory::operator delete(void*)'
/home/francis/tmp/ccMsWnm3.o: In function `xercesc_2_8::PSVIItem::~PSVIItem()':
test.cc:(.text._ZN11xercesc_2_88PSVIItemD2Ev[xercesc_2_8::PS­VIItem::~PSVIItem()]+0x1f): undefined reference to `xercesc_2_8::XMemory::operator delete(void*)'
/home/francis/tmp/ccMsWnm3.o: In function `xercesc_2_8::DTDEntityDecl::~DTDEntityDecl()':
test.cc:(.text._ZN11xercesc_2_813DTDEntityDeclD0Ev[xercesc_2­_8::DTDEntityDecl::~DTDEntityDecl()]+0x16): undefined reference to `xercesc_2_8::XMLEntityDecl::~XMLEntityDecl()'
test.cc:(.text._ZN11xercesc_2_813DTDEntityDeclD0Ev[xercesc_2­_8::DTDEntityDecl::~DTDEntityDecl()]+0x2a): undefined reference to `xercesc_2_8::XMemory::operator delete(void*)'
/home/francis/tmp/ccMsWnm3.o: In function `xercesc_2_8::DTDEntityDecl::~DTDEntityDecl()':
test.cc:(.text._ZN11xercesc_2_813DTDEntityDeclD1Ev[xercesc_2­_8::DTDEntityDecl::~DTDEntityDecl()]+0x16): undefined reference to `xercesc_2_8::XMLEntityDecl::~XMLEntityDecl()'
test.cc:(.text._ZN11xercesc_2_813DTDEntityDeclD1Ev[xercesc_2­_8::DTDEntityDecl::~DTDEntityDecl()]+0x2a): undefined reference to `xercesc_2_8::XMemory::operator delete(void*)'
/home/francis/tmp/ccMsWnm3.o: In function `xercesc_2_8::PSVIAttribute::~PSVIAttribute()':
test.cc:(.text._ZN11xercesc_2_813PSVIAttributeD0Ev[xercesc_2­_8::PSVIAttribute::~PSVIAttribute()]+0x7f): undefined reference to `xercesc_2_8::XMemory::operator delete(void*)'
/home/francis/tmp/ccMsWnm3.o:(.gcc_except_table+0xa0): undefined reference to `typeinfo for xercesc_2_8::XMLException'
/home/francis/tmp/ccMsWnm3.o:(.gcc_except_table+0xa4): undefined reference to `typeinfo for xercesc_2_8::DOMException'
/home/francis/tmp/ccMsWnm3.o: In function `xercesc_2_8::PSVIAttribute::~PSVIAttribute()':
test.cc:(.text._ZN11xercesc_2_813PSVIAttributeD1Ev[xercesc_2­_8::PSVIAttribute::~PSVIAttribute()]+0x7f): undefined reference to `xercesc_2_8::XMemory::operator delete(void*)'
/home/francis/tmp/ccMsWnm3.o: In function `xercesc_2_8::HandlerBase::fatalError(xercesc_2_8::SAXParseE­xception const&)':
test.cc:(.text._ZN11xercesc_2_811HandlerBase10fatalErrorERKNS_17SAXParseExceptionE[xercesc_2_8::HandlerBase::fatalError(xercesc_2_8::SAXParseException const&)]+0x2b): undefined reference to `xercesc_2_8::SAXParseException::SAXParseException(xercesc_2_8::SAXParseException const&)'
test.cc:(.text._ZN11xercesc_2_811HandlerBase10fatalErrorERKNS_17SAXParseExceptionE[xercesc_2_8::HandlerBase::fatalError(xercesc_2_8::SAXParseException const&)]+0x33): undefined reference to `xercesc_2_8::SAXParseException::~SAXParseException()'
test.cc:(.text._ZN11xercesc_2_811HandlerBase10fatalErrorERKNS_17SAXParseExceptionE[xercesc_2_8::HandlerBase::fatalError(xercesc_2_8::SAXParseException const&)]+0x3b): undefined reference to `typeinfo for xercesc_2_8::SAXParseException'
/home/francis/tmp/ccMsWnm3.o:(.rodata._ZTVN11xercesc_2_813PSVIAttributeE[vtable forxercesc_2_8::PSVIAttribute]+0x18): undefined reference to `xercesc_2_8::PSVIItem::getActualValue() const'
/home/francis/tmp/ccMsWnm3.o:(.rodata._ZTVN11xercesc_2_88PSVIItemE[vtable for xercesc_2_8::PSVIItem]+0x18): undefined reference to `xercesc_2_8::PSVIItem::getActualValue() const'
/home/francis/tmp/ccMsWnm3.o:(.rodata._ZTVN11xercesc_2_813DTDEntityDeclE[vtable forxercesc_2_8::DTDEntityDecl]+0x10): undefined reference to `xercesc_2_8::DTDEntityDecl::isSerializable() const'
/home/francis/tmp/ccMsWnm3.o:(.rodata._ZTVN11xercesc_2_813DTDEntityDeclE[vtable forxercesc_2_8::DTDEntityDecl]+0x14): undefined reference to `xercesc_2_8::DTDEntityDecl::serialize(xercesc_2_8::XSerializeEngine&)'
/home/francis/tmp/ccMsWnm3.o:(.rodata._ZTVN11xercesc_2_813DTDEntityDeclE[vtable forxercesc_2_8::DTDEntityDecl]+0x18): undefined reference to `xercesc_2_8::DTDEntityDecl::getProtoType() const'
/home/francis/tmp/ccMsWnm3.o:(.rodata._ZTVN11xercesc_2_813XMLAttDefListE[vtable forxercesc_2_8::XMLAttDefList]+0x10): undefined reference to `xercesc_2_8::XMLAttDefList::isSerializable() const'
/home/francis/tmp/ccMsWnm3.o:(.rodata._ZTVN11xercesc_2_813XMLAttDefListE[vtable forxercesc_2_8::XMLAttDefList]+0x14): undefined reference to `xercesc_2_8::XMLAttDefList::serialize(xercesc_2_8::XSerializeEngine&)'
/home/francis/tmp/ccMsWnm3.o:(.rodata._ZTVN11xercesc_2_813XMLAttDefListE[vtable forxercesc_2_8::XMLAttDefList]+0x18): undefined reference to `xercesc_2_8::XMLAttDefList::getProtoType() const'
/home/francis/tmp/ccMsWnm3.o:(.rodata._ZTIN11xercesc_2_813DTDEntityDeclE[typeinfo for xercesc_2_8::DTDEntityDecl]+0x8): undefined reference to `typeinfo for xercesc_2_8::XMLEntityDecl'
collect2: ld a retourné 1 code d'état d'exécution
[francis@localhost Bureau]$

Répondre à Goupfrancis

3

loupius, le 28 fév 2009 à 15:58:34

Utiliser g++ est nécessaire, mais il est aussi nécessaire d'indiquer les bibliothèques utilisées.
Par exemple, si ton programme utilise la bibliothèque libexemple.a ou libexemple.so, il faudra ajouter l'option -lexemple (j'ai bien mis '-lexemple' ce n'est pas une erreur); d'autre part si cette bibliothèque ne se trouve pas dans les répertoires de recherche, il faudra lui préciser -LnomRepertoire, 'nomRepertoire' étant évidemment le nom d'un nouveau répertoire où rechercher les bibliothèques (par exemple si le répertoire de recherche est le répertoire courant, on met -L..

Répondre à loupius

4

 Goupfrancis, le 17 mar 2009 à 18:07:34

Merci beaucoup, ça marche
A plus

Répondre à Goupfrancis
Collection CommentÇaMarche.net