Partage
  • Partager sur Facebook
  • Partager sur Twitter

Installer TinyXML

Compiler les sources

    24 décembre 2006 à 18:25:32

    Salut à tous

    Je suis entrain de commencer un tuto sur TinnyXML :
    http://khayyam.developpez.com/articles/cpp/tinyxml/#LI

    Mais l'installation de la librairie n'est pas assez espliquer pour moi.
    Je voudrais donc savoir comment compiler les souces de cette librairie.
    J'ai essai de crée un projet console avec CodeBlock, d'y mettre les fichers :
    tinyxml.cpp, tinyxml.h, tinyxmlerror.cpp, tinyxmlparser.cpp, tinystr.cpp, et tinystr.h
    et compiler, mais rien ne se créer :

    Citation : Compilateur

    Project : Console application
    Compiler : GNU GCC Compiler (called directly)
    Directory : C:\Documents and Settings\Stéphane\Mes documents\--- PROGRAMMATION ---\C - C++\Librairie\XML\tinyxml_2_5_2\tinyxml\
    --------------------------------------------------------------------------------
    Switching to target: default
    Linking console executable: C:\Documents and Settings\Stéphane\Mes documents\--- PROGRAMMATION ---\C - C++\Librairie\XML\tinyxml_2_5_2\tinyxml\console.exe
    C:\Program Files\CodeBlocks\lib/libmingw32.a(main.o):main.c:(.text+0x106): undefined reference to `WinMain@16'
    collect2: ld returned 1 exit status
    Process terminated with status 1 (0 minutes, 0 seconds)



    Que faire ?
    • Partager sur Facebook
    • Partager sur Twitter
      24 décembre 2006 à 20:40:31

      Telechargé une version précompilée :-° ?
      Ils en parlent dans le tuto mais je sais pas ou les choper...
      • Partager sur Facebook
      • Partager sur Twitter
        24 décembre 2006 à 22:48:50

        Justement moi non plus :(

        C'est pour ça que j'essai de compiler
        • Partager sur Facebook
        • Partager sur Twitter
          25 décembre 2006 à 10:13:44

          Faut compiler en bibliothèque dynamique/statique, pas en éxecutable.
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            25 décembre 2006 à 11:41:33

            C'est relativement simple. Tu as donc décompressé tous les fichiers dans un répertoire. Tu ouvres CodeBlocks et là tu crée un projet Static Lib dans le repertoire de tinyxml. Tu enlève le sample.c qui est mis par défaut dans ton projet (avec clic droit -> remove file from project) et tu ajoute un fichier au projet: tinyxml.cpp. Ce n'est pas la peine de mettre les autres, car le compilo ira les chercher tout seul comme un grand. En suite tu compile (si tu essaye ensuite de le lancer il t'affichera un joli message d'erreur car on ne peut pas exécuter une bibliothèque statique.) Donc tu regarde dans ton dossier et tu vois un joli fichier en .a que tu vas renommer tinyxml.a.

            Maintenant tu peux le "linker" dans tes projets qui utilisent tinyXml par l'intermédiaire du menu project->build options, de la même façon que tu a fait avec la SDL.
            • Partager sur Facebook
            • Partager sur Twitter
              25 décembre 2006 à 21:27:04

              Je crois que j'ai reussit a compiler correctement, il ma fait un fichier .a de 170Ko.
              Apres plus loin dans le tuto il esplique comment ouvrir un fichier :
              http://khayyam.developpez.com/articles/cpp/tinyxml/#LII-1

              J'essai de compiler ça :
              #include <iostream>
              #include <string>
              #include <list>
              #include <sstream>
              #include <XML/tinyxml.h>


              int main()
              {

              using namespace std; // Pour pas marquer std:: partout


              TiXmlDocument doc("users.xml");
              if(!doc.LoadFile()){
                  cerr << "erreur lors du chargement" << endl;
                  cerr << "error #" << doc.ErrorId() << " : " << doc.ErrorDesc() << endl;
                  return 1;
              }

                      cout << "Hello world!" << endl;

                      return 0;
              }


              Mais rien ne se passe :

              Citation : Compilateur

              Project : Console application
              Compiler : GNU GCC Compiler (called directly)
              Directory : C:\Documents and Settings\Stéphane\Mes documents\--- PROGRAMMATION ---\C - C++\XML\Base\
              --------------------------------------------------------------------------------
              Switching to target: default
              Compiling: main.cpp
              Linking console executable: C:\Documents and Settings\Stéphane\Mes documents\--- PROGRAMMATION ---\C - C++\XML\Base\console.exe
              .objs\main.o:main.cpp:(.text$_ZN13TiXmlDocumentD1Ev[TiXmlDocument::~TiXmlDocument()]+0x3a): undefined reference to `vtable for TiXmlDocument'
              .objs\main.o:main.cpp:(.text$_ZN11TiXmlString4quitEv[TiXmlString::quit()]+0xb): undefined reference to `TiXmlString::nullrep_'
              collect2: ld returned 1 exit status
              Process terminated with status 1 (0 minutes, 1 seconds)

              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                25 décembre 2006 à 21:37:01

                As-tu bien ajouté tinyxml.a à ton linker ?
                Je te rappelle la marche à suivre:
                Menu Project (et pas build),
                Item Build Options,
                Onglet Linker,
                Bouton Add,
                Tu entre le chemin de tinyxml.a (que je te conseille de mettre dans le même dossier que les .lib de SDL)
                Valide :lol:
                Et puis compile ! :)
                • Partager sur Facebook
                • Partager sur Twitter
                  25 décembre 2006 à 22:13:09

                  C'est exatement ce que j'ai fait :(
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Installer TinyXML

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown