IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Utilisation de tinyXml


Sujet :

C++

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 47
    Points : 40
    Points
    40
    Par défaut Utilisation de tinyXml
    Bonjour
    Je trouve un souci dans l'installation de tinyxml,j'utilise le Debian et je suis debutante en C++.
    1-J'ai extraire le dossier
    2- je fais make pour le compiler
    3-j'ai fais #include "tinyxml.h" et #include "tinyxml.h" dans le header de mon classe
    4-j'ai copier tous le fichier de la bibliothéque dans le dossier de mon projet.

    mais toujours le même problème
    c'est l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    /tmp/ccQx8mye.o: In function `main':
    Testtinyxml.cpp:(.text+0x1e): undefined reference to `TiXmlDocument::TiXmlDocument(char const*)'
    Testtinyxml.cpp:(.text+0x32): undefined reference to `TiXmlDocument::LoadFile(TiXmlEncoding)'
    /tmp/ccQx8mye.o: In function `TiXmlString::quit()':
    Testtinyxml.cpp:(.text._ZN11TiXmlString4quitEv[TiXmlString::quit()]+0xc): undefined reference to `TiXmlString::nullrep_'
    /tmp/ccQx8mye.o: In function `TiXmlDocument::~TiXmlDocument()':
    Testtinyxml.cpp:(.text._ZN13TiXmlDocumentD1Ev[TiXmlDocument::~TiXmlDocument()]+0xb): undefined reference to `vtable for TiXmlDocument'
    Testtinyxml.cpp:(.text._ZN13TiXmlDocumentD1Ev[TiXmlDocument::~TiXmlDocument()]+0x24): undefined reference to `TiXmlNode::~TiXmlNode()'
    collect2: ld returned 1 exit status
    et c'est mon code c++

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    #include "Testtinyxml.h"
    #include <iostream>
    #include "boost/date_time/gregorian/gregorian.hpp"
    #include "tinyxml.h"
    #include <list>
    #include "User.h"
    #include "tinystr.h"
    using namespace std;
    int main(){
     
        TiXmlDocument doc("lstUsers.xml");
    	if(!doc.LoadFile()){
       	cerr << " erreur lors du chargement" << endl;
       	cerr << "error #" << doc.ErrorId() << " : " << doc.ErrorDesc() << endl;
     
        	return 1;
     
        	list<User> user_list;
        	TiXmlHandle hdl(&doc);
        	TiXmlElement *elem = hdl.FirstChildElement().FirstChildElement().Element();
        	User cl;
        	if(!elem){
        		cerr << "le noeud à atteindre n'existe pas" << endl;
        		return 2;
        	}
     
        	while (elem){
        		cl.name = elem->Attribute("name");
        		cl.pass = elem->Attribute("pass");
        		elem->QueryIntAttribute("indice", &cl.droits);
        		user_list.push_back(cl);
     
        		elem = elem->NextSiblingElement(); // iteration
        	}
        	list<User>::iterator i;
        	for(i=user_list.begin(); i!=user_list.end(); i++)
        	    cout << i->name << " " << i->pass << " " << i->droits << endl;
     
    	}
    	return 0;
    }
    J’espère que vous m'aider à trouver une solution

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 704
    Points
    2 704
    Par défaut
    Citation Envoyé par dhbmedanis Voir le message
    3-j'ai fais #include "tinyxml.h" et #include "tinyxml.h" dans le header de mon classe
    4-j'ai copier tous le fichier de la bibliothéque dans le dossier de mon projet.
    Les .h sont-ils dans le même répertoires que tes sources qui utilisent lesdits .h ?

  3. #3
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Les undefined reference indiquent non pas un problème à la compilation, mais à l'édition de lien. Peux tu nous montrer la ligne de commande / le makefile /... que tu utilises pour compiler ?
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  4. #4
    Membre expérimenté Avatar de alexrtz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2003
    Messages : 639
    Points : 1 359
    Points
    1 359
    Par défaut
    Citation Envoyé par dhbmedanis Voir le message
    4-j'ai copier tous le fichier de la bibliothéque dans le dossier de mon projet.
    Il faut que tu les inclues dans la ligne de commande de compilation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g++ mon_programme.cpp tinystr.o  tinyxmlerror.o  tinyxml.o  tinyxmlparser.o -o mon_programme
    "Je suis incapable d'expliquer ce qui se passa ensuite : je lâchai quelque chose, quelque chose à quoi je m'agrippais depuis toujours sans m'en rendre compte. Je m'enfonçais dans une obscurité chaude, moelleuse et protectrice, tandis qu'un loup montait la garde par mes propres yeux."

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 47
    Points : 40
    Points
    40
    Par défaut Oui les .h dont dans le même dossier que le projet (mes sources)
    Citation Envoyé par oodini Voir le message
    Les .h sont-ils dans le même répertoires que tes sources qui utilisent lesdits .h ?

  6. #6
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 47
    Points : 40
    Points
    40
    Par défaut
    voici le makefile

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
     
     
    CC     := gcc
    CXX    := g++
    LD     := g++
    AR     := ar rc
    RANLIB := ranlib
     
    DEBUG_CFLAGS     := -Wall -Wno-format -g -DDEBUG
    RELEASE_CFLAGS   := -Wall -Wno-unknown-pragmas -Wno-format -O3
     
    LIBS		 :=
     
    DEBUG_CXXFLAGS   := ${DEBUG_CFLAGS} 
    RELEASE_CXXFLAGS := ${RELEASE_CFLAGS}
     
    DEBUG_LDFLAGS    := -g
    RELEASE_LDFLAGS  :=
     
    ifeq (YES, ${DEBUG})
       CFLAGS       := ${DEBUG_CFLAGS}
       CXXFLAGS     := ${DEBUG_CXXFLAGS}
       LDFLAGS      := ${DEBUG_LDFLAGS}
    else
       CFLAGS       := ${RELEASE_CFLAGS}
       CXXFLAGS     := ${RELEASE_CXXFLAGS}
       LDFLAGS      := ${RELEASE_LDFLAGS}
    endif
     
    ifeq (YES, ${PROFILE})
       CFLAGS   := ${CFLAGS} -pg -O3
       CXXFLAGS := ${CXXFLAGS} -pg -O3
       LDFLAGS  := ${LDFLAGS} -pg
    endif
     
    #****************************************************************************
    # Preprocessor directives
    #****************************************************************************
     
    ifeq (YES, ${TINYXML_USE_STL})
      DEFS := -DTIXML_USE_STL
    else
      DEFS :=
    endif
     
    #****************************************************************************
    # Include paths
    #****************************************************************************
     
    #INCS := -I/usr/include/g++-2 -I/usr/local/include
    INCS :=
     
     
    #****************************************************************************
    # Makefile code common to all platforms
    #****************************************************************************
     
    CFLAGS   := ${CFLAGS}   ${DEFS}
    CXXFLAGS := ${CXXFLAGS} ${DEFS}
     
    #****************************************************************************
    # Targets of the build
    #****************************************************************************
     
    OUTPUT := xmltest
     
    all: ${OUTPUT}
     
     
    #****************************************************************************
    # Source files
    #****************************************************************************
     
    SRCS := tinyxml.cpp tinyxmlparser.cpp xmltest.cpp tinyxmlerror.cpp tinystr.cpp
     
    # Add on the sources for libraries
    SRCS := ${SRCS}
     
    OBJS := $(addsuffix .o,$(basename ${SRCS}))
     
    #****************************************************************************
    # Output
    #****************************************************************************
     
    ${OUTPUT}: ${OBJS}
    	${LD} -o $@ ${LDFLAGS} ${OBJS} ${LIBS} ${EXTRA_LIBS}
     
    #****************************************************************************
    # common rules
    #****************************************************************************
     
    # Rules for compiling source files to object files
    %.o : %.cpp
    	${CXX} -c -ltinyxml${CXXFLAGS} ${INCS} $< -o $@
     
    %.o : %.c
    	${CC} -c ${CFLAGS} ${INCS} $< -o $@
     
    dist:
    	bash makedistlinux
     
    clean:
    	-rm -f core ${OBJS} ${OUTPUT}
     
    depend:
    	#makedepend ${INCS} ${SRCS}
     
    tinyxml.o: tinyxml.h tinystr.h
    tinyxmlparser.o: tinyxml.h tinystr.h
    xmltest.o: tinyxml.h tinystr.h
    tinyxmlerror.o: tinyxml.h tinystr.h
    comment ej peux faire l'edition des liens c'est dans le makefile ???

  7. #7
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 47
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par rurouni alex Voir le message
    Il faut que tu les inclues dans la ligne de commande de compilation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g++ mon_programme.cpp tinystr.o  tinyxmlerror.o  tinyxml.o  tinyxmlparser.o -o mon_programme
    j'ai répété le code mais il n'affiche rien comme des erreurs même cout n'affiche rien ???????????

  8. #8
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 47
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par rurouni alex Voir le message
    Il faut que tu les inclues dans la ligne de commande de compilation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g++ mon_programme.cpp tinystr.o  tinyxmlerror.o  tinyxml.o  tinyxmlparser.o -o mon_programme
    oui j'ecrit ce qui tu a écrit il n'affiche pas des erreurs dans la ligne des commandes mais aussi n'affiche pas les cout???

  9. #9
    Membre expérimenté Avatar de alexrtz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2003
    Messages : 639
    Points : 1 359
    Points
    1 359
    Par défaut
    Citation Envoyé par dhbmedanis Voir le message
    oui j'ecrit ce qui tu a écrit il n'affiche pas des erreurs dans la ligne des commandes mais aussi n'affiche pas les cout???
    C'est normal, c'était la commande pour compiler le programme et le fait qu'elle n'affiche rien montre qu'il n'y a pas eu d'erreur.
    Dans le répertoire depuis lequel tu as tapé cette commande tu as un fichier binaire qui est apparu.
    Tu peux l'exécuter en tapant :
    "Je suis incapable d'expliquer ce qui se passa ensuite : je lâchai quelque chose, quelque chose à quoi je m'agrippais depuis toujours sans m'en rendre compte. Je m'enfonçais dans une obscurité chaude, moelleuse et protectrice, tandis qu'un loup montait la garde par mes propres yeux."

  10. #10
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 47
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par rurouni alex Voir le message
    C'est normal, c'était la commande pour compiler le programme et le fait qu'elle n'affiche rien montre qu'il n'y a pas eu d'erreur.
    Dans le répertoire depuis lequel tu as tapé cette commande tu as un fichier binaire qui est apparu.
    Tu peux l'exécuter en tapant :
    merci ca marche bien maintenant et le problème d'affichage n'a pas aucune relation avec tinyxml.Ce que je connais en c que l'affichage de printf ca sera en ligne de commande sous linux mais même j'ai essaye de faire un programme c++ avec un seul ligne de code cout << "bonjour"; et ça marche pas
    merci

Discussions similaires

  1. [TinyXML] Utilisation
    Par gaygou dans le forum XML
    Réponses: 4
    Dernier message: 28/04/2013, 00h14
  2. Utilisation de tinyXml
    Par dhbmedanis dans le forum C++
    Réponses: 1
    Dernier message: 15/05/2012, 13h49
  3. Problème d'utilisation de tinyXML
    Par bricecol dans le forum Bibliothèques
    Réponses: 7
    Dernier message: 14/01/2010, 16h55
  4. utiliser TinyXML
    Par Blowih dans le forum Bibliothèques
    Réponses: 4
    Dernier message: 07/11/2006, 21h42
  5. Utilisation de tinyXml avec VC++2005 (erreurs)
    Par basnifo dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 16/10/2006, 09h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo