Bonjour,
J'ai un probleme de compilation, le but de ce programme est de testé la lecture XML avec la bibliotheque QtXml
Voila pour faire simple quant je compile ca donne :
Code :
- compiling Xml.cpp (g++)
- generating moc_Xml.cpp (moc)
- src/Xml.h:0: Warning: No relevant classes found. No output generated.
- compiling moc_Xml.cpp (g++)
- linking xmlTest2 (g++)
- Xml.o: In function `Xml::Xml()':
- Xml.cpp:(.text+0x5e): undefined reference to `QDomDocument::QDomDocument(QString const& )'
- Xml.cpp:(.text+0xee): undefined reference to `QDomDocument::setContent(QIODevice*, QString*, int*, int*)'
- Xml.cpp:(.text+0x106): undefined reference to `QDomDocument::~QDomDocument()'
- Xml.cpp:(.text+0x152): undefined reference to `QDomDocument::~QDomDocument()'
- Xml.o: In function `Xml::Xml()':
- Xml.cpp:(.text+0x1ae): undefined reference to `QDomDocument::QDomDocument(QString const& )'
- Xml.cpp:(.text+0x23e): undefined reference to `QDomDocument::setContent(QIODevice*, QString*, int*, int*)'
- Xml.cpp:(.text+0x256): undefined reference to `QDomDocument::~QDomDocument()'
- Xml.cpp:(.text+0x2a2): undefined reference to `QDomDocument::~QDomDocument()'
- collect2: ld a retourné 1 code d'état d'exécution
- make: *** [xmlTest2] Erreur 1
- make: La cible « first » n'a pas pu être refabriquée à cause d'erreurs.
- *** Exited with status: 2 ***
|
le main :
Code :
- #include <QCoreApplication>
- #include "Xml.h"
- int main(int argc, char *argv[])
- {
- QCoreApplication app(argc, argv);
- Xml a;
- a.Lire();
- qDebug("Hello from Qt 4!" );
- return 0;
- }
|
le xml.h
Code :
- #ifndef XML_H
- #define XML_H
- #include <QObject>
- #include <QMessageBox>
- //#include <QtXml/QtXml>
- #include <QtXml/QDomDocument>
- #include <QFile>
- class Xml :public QObject
- {
- Q_OBJECT
- public:
- Xml();
- ~Xml();
- public:
- void Lire();
- private:
- QDomDocument *doc;
- };
- #endif
|
le Xml.cpp
Code :
- #include "Xml.h"
- //#include <QtXml/QtXml>
- #include <QtXml/QDomDocument>
- Xml::Xml()
- {
- QDomDocument doc("mydocument" );
- QFile file("config.xml" );
- if(!file.open(QIODevice::ReadOnly))
- return;
- if(!doc.setContent(&file)){ // etablit le doc XML a partir des données du fichier
- file.close();
- return;
- }
- file.close();
- }
- Xml::~Xml()
- {
- }
- void Xml::Lire()
- {/*
- int i=0;
- QString affichage;
- QDomNodeList tab;
- QDomElement mesure;
- QDomNode n;
- QMessageBox a(0);
- QDomElement racine = doc.documentElement(); //renvoie la balise racine
- QDomNode noeud = racine.firstChild(); //renvoie la 1er balise
-
- while(!noeud.isNull())
- {
- //convertit le noeud en element pour utiliser les methodes tagName et attribute
- mesure = noeud.toElement();
- //verification du nom de la balise
- if(mesure.tagName()=="systeme" )
- {
- affichage = mesure.attribute("id" );
- if (affichage != "outil_postage" )
- {
- a.setText("probleme lecture fichier config !!" );
- a.exec();
- return ;
- }
- tab = mesure.childNodes();
- for (i=0;i<tab.length();i++)
- {
- affichage = affichage + " "+n.firstChild().toText().data();
- }
- a.setText(affichage);
- a.exec();
- }
- noeud = noeud.nextSibling();
- }
- */
- }
|
voila, j'ai retrouné le probléme dans tous les senses et je vois pas le probléme.
Si quelqu'un a une petite solution a me proposé ca serai cool,
Merci d'avance.
Message édité par nebucade le 17-07-2007 à 10:30:42