Problème de compilation - C++ - Programmation
Marsh Posté le 22-04-2004 à 16:52:10
La voilà : E:\Programmation\Dev-Cpp\Projet\main.cpp
`XMLPlatformUtils' undeclared (first use this function)
parse error before `::' token
Je me susi trompé en recopiant, ce n'est pas XMLPlatformUtils->Initialize(); mais XMLPlatformUtils::Initailize()
Marsh Posté le 22-04-2004 à 19:50:50
t'as peut-être oublier de linker Xercès... vérifie de ce côté!
Marsh Posté le 22-04-2004 à 22:53:28
En fait, je crois aussi que c'est ça, mais je ne suis pas certain de la démarche à opérer pour linker avec une librairie sous dev-cpp.
Dans le projet, j'ai déclaré le dossier qui contient les include, le dossier qui contient la lib, et la lib, mais je ne suis pas du tout certains que ce soit bien défini.
Alors si kelk1 maitrisait dev-cpp ca m'arrangerait beaucoup.
Merci
Marsh Posté le 23-04-2004 à 09:35:25
dans le soptions du projet y a un onglets Additional Library dans lequel tu ajoute le chemin de ton lib.
Il n'a aucun besoin d'etre ajouter dans les ficheirs du projets.
Bref va relire le manuel de gcc ca t'aidera ...
Marsh Posté le 23-04-2004 à 09:47:16
Oui ca je l'ai fais et j'ai bien rajouté l'option -lxerces... mais toujours rien !!!!! il ne me reconnait pas le prototype de la fonction ! je lache l'affaire, si kelk1 a réussi à faire fonctionner xerces sous dec-cpp je suis preneur, sinon je passe à tinyxml.
Marsh Posté le 23-04-2004 à 10:32:17
pas -lxerces mais un truc du styel :
-L/mon/path/juska/xecres/lib
Marsh Posté le 23-04-2004 à 12:01:23
si c'est une erreur de compilation, le link n'a rien à voir la dedans (ou alors le linker utilise ipot?)
Marsh Posté le 04-01-2005 à 19:27:16
tout a fait d'accord avec SoWhatIn22
c'est pitet un pb d'espace de nom ...
essai de rajouter XERCES_CPP_NAMESPACE_USE par exemple après //using namespace std;
de plus XMLPlatformUtils n'est pas à déréférencer (mmmh ca fait beaucoup de 'é') et Initialize() est une fonction statique de cette dernière classe
remplace donc XMLPlatformUtils->Initialize();
par XMLPlatformUtils::Initialize();
[edit]ha ben dsl, vue la date de ce sujet, ma réponse sert pas à gd chose[/edit]
Marsh Posté le 22-04-2004 à 16:46:30
Bonjour,
Je souhaite développer un parser avec xerces sous la technologie DOM, le tout programmer en C++ sous Dev-Cpp. J'ai suivi le tutorial de xerces, seulement impossible de compiler, il me génère une erreur dès l'initialisation. Voici une partie du code, il bug donc sur XMLPlatformUtil::Initialize().
D'après vous est-ce que ça peut venir d'une mauvaise configuration de ma part sous dev-cpp (au niveau de mon projet) ? Toutes les suggestions sont les bonnes. Par avance merci.
#include <iostream>
#include <stdlib.h>
#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>
//using namespace std;
int main(int argc, char *argv[])
{
FILE * fileOUT;
DOMParser* parser;
if (argc != 3) {
printf("\nUtilisation XML2TXT <fichier XML> <fichier TXT>\n" );
exit(0);
}
else {
if ((fileOUT = fopen(argv[2], "w+" )) != NULL)
printf("\n Début du parsing" );
else {
printf("\n Problème d'ouverture du fichier destinataire" );
exit(0);
}
}
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;
}