Problème de compilation de bibliothèque XMlL dans un programme C sous visual Stu

Résolu
boualiasma Messages postés 393 Date d'inscription lundi 22 juin 2009 Statut Membre Dernière intervention 23 décembre 2011 - 27 juin 2009 à 18:47
boualiasma Messages postés 393 Date d'inscription lundi 22 juin 2009 Statut Membre Dernière intervention 23 décembre 2011 - 28 juin 2009 à 18:48
Salut,

- j' extrais tous les sept archives libxml2-2.7.3.win32,
iconv-1.9.2.win32, zlib-1.2.3.win32, libxmlsec-1.2.11+.win32,
libxslt-1.1.24.win32, xsldbg-3.1.7.win32 et openssl-0.9.8a.win32.

-
je mis les trois répertoires include , bin et lib de chacun de sept
archives sous les tris répertoires suivants include , bin et lib de
Visual Stusio 2008

C:\Program Files\Microsoft Visual Studio 9.0\VC\include\libxml
C:\Program Files\Microsoft Visual Studio 9.0\VC\bin
C:\Program Files\Microsoft Visual Studio 9.0\VC\lib

- j'ajoute dans le PATH de variable système:
C:\Program Files\Microsoft Visual Studio 9.0\VC\bin

- j'écris dans mon programme C un simple exemple donné dans le site de LIBXML2 :

#include <stdio.h>
#include <stdlib.h>
#include <libxml parser="">

int main() {
xmlDocPtr doc;
xmlNodePtr racine;

// Ouverture du fichier XML
doc = xmlParseFile("catalogue.xml");
if (doc == NULL) {
fprintf(stderr, "Document XML invalide\n");
return EXIT_FAILURE;
}
// Récupération de la racine
racine = xmlDocGetRootElement(doc);
if (racine == NULL) {
fprintf(stderr, "Document XML vierge\n");
xmlFreeDoc(doc);
return EXIT_FAILURE;
}
printf("La racine du document est : %s\n", racine->name);
// Libération de la mémoire
xmlFreeDoc(doc);

return EXIT_SUCCESS;
}</libxml></stdlib.h></stdio.h>

Après la compilation, j'ai les messages d'erreurs suivants:

1>------ Début de la génération : Projet : passage, Configuration : Debug Win32 ------
1>Édition des liens en cours...
1>main.obj : error LNK2019: symbole externe non résolu _xmlFreeDoc référencé dans la fonction _main
1>main.obj : error LNK2019: symbole externe non résolu _xmlDocGetRootElement référencé dans la fonction _main
1>main.obj : error LNK2019: symbole externe non résolu _xmlParseFile référencé dans la fonction _main
1>C:\ChGaLib\passage\Debug\passage.exe : fatal error LNK1120: 3 externes non résolus
1>Le journal de génération a été enregistré à l'emplacement "file://c:\ChGaLib\passage\passage\Debug\BuildLog.htm"
1>passage - 4 erreur(s), 0 avertissement(s)
======== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========

SVP, j'ai besoin du vos aides.

4 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
28 juin 2009 à 17:36
Il faut ajouter des directives pour que le linker aille chercher les librairies.
Dans un de tes fichiers source, ajoute la ligne suivante pour chacun de tes fichiers .lib
#pragma comment(lib, "nom.lib")

_____________________________________
Un éditeur de ressources gratuit pour Windows
3
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
28 juin 2009 à 15:40
Ou as-tu placé les différents fichiers .lib des sept libraires?

_____________________________________
Un éditeur de ressources gratuit pour Windows
0
boualiasma Messages postés 393 Date d'inscription lundi 22 juin 2009 Statut Membre Dernière intervention 23 décembre 2011 5
28 juin 2009 à 16:40
Salut,

J'ai placé les différents fichiers .lib des sept libraires sous:
C:\Program Files\Microsoft Visual Studio 9.0\VC\lib

et j'ai ajouté dans le PATH de variable système:
C:\Program Files\Microsoft Visual Studio 9.0\VC\bin
C:\Program Files\Microsoft Visual Studio 9.0\VC\lib

Lors de création de mon projet C sousVisual Studio, j'ai laissé la configuration par défaut.

Je ne peux pas avancer dans mon travail si l'intégration de ces libraires ne marchent pas dans mon programme.

Je serais très contente pour vos aides.
0
boualiasma Messages postés 393 Date d'inscription lundi 22 juin 2009 Statut Membre Dernière intervention 23 décembre 2011 5
28 juin 2009 à 18:48
j'ai ajouté :
#pragma comment(lib,"libxml2.lib")
ca marche merci. c'est quoi le role de cette commande. Je peux savoir la liste de ces commandes?

J'ai une autre demande SVP:

J'ai un fichier texte bien formé contient deux champs: objet et attribut.

tous les objets sont des entiers et tous les attributs sont de chaines de caractères de même taille.

chaque ligne contient un objet et son attribut par exemple:


essai.txt:


1     11100


2     10101


3     01001


4     10001


Je voudrais supprimer les 0 de même position dans chaque chaine de caractère.

Par exemple dans notre cas, nous allons supprimer les 0 dans la
position 4 de chaque chaine car dans cette position nous avons toutes
les chaines sont à 0.


j'ai trouvé une difficulté de résoudre ce problème, de plus imaginez si nous avons un fichier volumineux.

le résultat est:
1     1110



2     1011



3     0101



4     1001

mon idée:

je lis caractère par caractère de ligne 1 si je trouve 0 à la position p
alors alors comment je vais passer à la position p du ligne 2 si je
trouve 0 alors je dois tester si il existe 0 dans la position p de
chaque ligne restant?
Comment je vais retourner à la position p+1 de ligne 1 pour tester le reste des caractères?
si je trouve un 0 dans la position p dans toutes les lignes alors comment je vais supprimer ce 0 de toutes lignes en même temps?
je ne sais pas si je utilisse un fichier temporaire ou bien je travaille sur le même fichier?

Je vous remercie pour votre aide.
0
Rejoignez-nous